Mysql phpMyAdmin导出导致错误代码:1406。数据对于列来说太长

Mysql phpMyAdmin导出导致错误代码:1406。数据对于列来说太长,mysql,phpmyadmin,Mysql,Phpmyadmin,我正在从另一台服务器迁移数据库,并使用phpMyAdmin生成sql转储。问题出现在text列插入中,其中导出的数据显然有点太长。我知道如何关闭严格模式,但这只会导致插入的数据被截断,这不是我想要的。我不认为导出的数据太长而无法再次插入,除非phpMyAdmin以某种方式向字段添加字符 文本字段的最大长度是65535,而我插入的内容只长了几百个字符。作为一种解决方法,我将更改insert语句,将字段创建为longtext,但我真的想知道为什么我的导出不能按原样导入,以及如何更正它。在这里回答我自

我正在从另一台服务器迁移数据库,并使用phpMyAdmin生成sql转储。问题出现在
text
列插入中,其中导出的数据显然有点太长。我知道如何关闭严格模式,但这只会导致插入的数据被截断,这不是我想要的。我不认为导出的数据太长而无法再次插入,除非phpMyAdmin以某种方式向字段添加字符


文本
字段的最大长度是65535,而我插入的内容只长了几百个字符。作为一种解决方法,我将更改insert语句,将字段创建为
longtext
,但我真的想知道为什么我的导出不能按原样导入,以及如何更正它。

在这里回答我自己的问题。显然,phpMyadmin将换行符导出为
\r\n
。我读了一些关于这是一个-但是我使用的是v4.7,它仍然表现出这种行为。长话短说,一个简单的换行符变成了4个字符——因此在一个正好是65535个字符的
文本
字段上(可能在过去被截断),导出的数据现在比表中的实际长度要长

对我来说,修复方法是在vim中打开文件并执行一个简单的操作:

:%s#\\r\\n#\r#g
用实际换行符替换所有这些字符