我正在使用来自 Java 应用程序的相当简单的数据库。我们试图使用标准的 JDBC mysql 适配器一次插入大约 200k 的文本。我们间歇性地得到一个 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column error.
列类型为 longtext
,数据库排序规则为 UTF-8
。使用 MyISAM
和 InnoDB
表引擎时会出现错误。客户端和服务器端的最大数据包大小均设置为 1 GB,因此这也不会造成问题。
原文由 Jeremy Witmer 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查您的 UTF-8 数据是否全部为 3 字节 Unicode。如果你有 4 字节的字符(在 Unicode 和 Java 中合法,在 MySQL 5 中非法),当你尝试插入它们时它会抛出这个错误。这是一个 应该在 MySQL 6.0 中修复的问题。