好的,当我尝试插入一个字符串时遇到了问题,该字符串被认为是 UTF-8 格式,而实际上是 latin-1。问题是,不同服务器之间的行为各不相同,例如:
当遇到非 UTF8 字符时,Windows 会给出错误:“错误的字符串值:'\xD1OL S....' 对于列 [...]”
Linux 会悄悄地插入我给它的任何内容,直到找到它不喜欢的第一个字符,然后截断字符串的其余部分。
这一次,我发现 Windows 行为是我更想要的行为。我一直在寻找,但没有找到某种选项来使 mysql linux 服务器更加严格。
你现在有一个吗?
谢谢!
最佳答案
嗯,速度很快。问题是,我们的 5.6 Linux 服务器并未处于严格模式,尽管我们的 DBA 向我保证确实如此,这让我们认为这是 Linux 问题。
因此,只需激活STRICT_ALL_TABLES。 MySQL 模式以及如何激活它们如下:
关于MySQL 在插入 UTF-8 列时会截断 latin-1 数据。如何得到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23342531/