phpmyadmin导出导致错误代码:1406列的数据太长

iezvtpos  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(371)

我正在从另一台服务器迁移数据库,并使用phpmyadmin生成sql转储。这个问题是在一个特殊的时间出现的 text 在导出的数据稍微过长的地方插入列。我知道如何关闭严格模式,但这只会导致插入的数据被截断,这不是我想要的。我不明白为什么导出的数据太长而无法再次插入,除非phpmyadmin以某种方式向字段中添加字符。
最大长度 text 字段是65535,而我插入的结果是只有几百个字符太长了。作为一种解决方法,我将修改insert语句,将字段创建为 longtext 但我真的很想知道为什么我的出口是不可进口的,因为是和如何纠正它。

watbbzwu

watbbzwu1#

我来回答我自己的问题。显然phpmyadmin将新线作为 \r\n . 我在4.6的一些版本中读了一些关于这个bug的文章,但是我使用的是v4.7,它仍然表现出这种行为。长话短说,一个简单的换行就变成了4个字符——以此类推 text 字段的长度正好是65535个字符(可能在过去被截断),导出的数据现在比表中实际存在的数据长。
对我来说,解决方法是在vim中打开文件并执行一个简单的操作:

:%s#\\r\\n#\r#g

用实际换行符替换所有字符。

相关问题