【问题标题】:MySQL does not Import .SQL Dump ProperlyMySQL 无法正确导入 .SQL 转储
【发布时间】:2012-02-14 03:17:26
【问题描述】:

我有一个包含 24k INSERT 语句的 .sql 文件:

INSERT INTO dump(id, title, content, datetime, section) VALUES ('', 'Title up to 200 characters', 'Detailed content with HTML tags', '04-10-2010, 11:48 AM', 1);

导入完成后,我会收到一条消息

导入已成功完成,已执行 24664 个查询。

当我浏览表格时,我发现许多标题和内容完全是空的或仅带有部分文本,即几个字母。

正确插入的唯一部分是:id、datetime 和 section。

标题和内容承载着沉重的内容。许多“内容”可能带有 250 个字符+。标题最多包含 100 个字符。

另一方面,我发现复制/粘贴几段 INSERT 并通过 SQL 区域手动执行。一切都正确插入。这种方法可能需要我很长时间......

知道为什么我会遇到这样的问题吗?

【问题讨论】:

  • 是什么创建了转储?也许转储本身包含错误。
  • 我会找到一个没有正确导入的特定行,然后从转储中复制它,看看粘贴并手动添加时会发生什么。
  • 大多数行没有正确导入...转储是使用我自己的脚本手动创建的。 INSERT 语句结构正确。
  • 您的标题或内容数据中很可能有一些单引号。你应该转义这些字符。
  • 如果我使用单个 INSERT 并手动插入,我不会遇到任何问题...

标签: php mysql phpmyadmin


【解决方案1】:

使用 MYSQL 创建转储试试这个命令

mysqldump --extended-insert=FALSE --complete-insert=TRUE -p db_name

【讨论】:

  • 我不得不使用: > SET NAMES UTF8 ......... > source dumpfile.sql ........ 假设 dumpfile.sql 是 UTF-8 类型
【解决方案2】:

检查 max_allowed_pa​​cket 大小并确保它不会损害您的插入。

【讨论】:

  • 我已经遇到过好几次了……这是一个很好的起点
猜你喜欢
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
相关资源
最近更新 更多