【问题标题】:phpMyAdmin export results in Error Code: 1406. Data too long for columnphpMyAdmin 导出导致错误代码:1406。列的数据太长
【发布时间】:2018-10-28 03:05:57
【问题描述】:

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

text 字段的最大长度为 65,535,而我插入的内容只有几百个字符太长。作为一种解决方法,我将更改插入语句以将字段创建为longtext,但我真的很想知道为什么我的导出无法按原样导入以及如何更正它。

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

    在这里回答我自己的问题。显然 phpMyadmin 将换行符导出为\r\n。我读了一些关于这是bug in some versions of 4.6 的文章——但是我使用的是v4.7,它仍然表现出这种行为。长话短说,一个简单的换行符变成 4 个字符 - 所以在一个正好是 65,535 个字符(过去可能被截断)的 text 字段上,导出的数据现在比实际存在的数据长表。

    对我来说,解决方法是在 vim 中打开文件并做一个简单的操作:

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

    用实际的换行符替换所有这些字符。

    【讨论】:

      猜你喜欢
      • 2013-04-03
      • 2012-02-11
      • 1970-01-01
      • 2015-03-05
      • 2021-05-09
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多