我正在导入一个 400MB(未压缩)的 MySQL 数据库。我正在使用 BIGDUMP,但收到此错误:

Stopped at the line 387.

At this place the current query includes more than 300 dump lines. That can happen if your dump file was created by some tool which doesn't place a semicolon followed by a linebreak at the end of each query, or if your dump contains extended inserts. Please read the BigDump FAQs for more infos.

我相信该文件确实包含扩展插入,但是我无法重新生成数据库,因为它已从旧服务器中删除。如何导入该数据库或将其转换为导入?

谢谢你的帮助。

最好的尼克

编辑: 看来唯一可行的答案是分离扩展插入,但我仍然需要帮助弄清楚如何拆分文件,如下面的答案所示。请帮忙。谢谢。

有帮助吗?

解决方案 3

我能够增加存储器缓冲器且经由SSH做一个普通的MySQL导入后成功地导入到数据库中。

我用下面的命令与绝对路径:

mysql -u <username> -p < /home/dir/dumpfile.sql
最佳

尼克

其他提示

您不需要做任何修改.sql文件: 只是在任何文本编辑器打开bigdump.php,找到行

define ('MAX_QUERY_LINES',300);

和你想要的任何东西取代300。

只需编辑转储文件,以便在 300 条插入后开始一个新语句:

INSERT INTO `myTable` (`id`, `field1`, `field2`) VALUES
    (1, 'a', 'b'),
    (2, 'c', 'd'),
    (3, 'e', 'f'),
    -- snip --
    (300, 'w', 'x');
INSERT INTO `myTable` (`id`, `field1`, `field2`) VALUES
    (301, 'y', 'z'),
    (302, ... etc

您只需打开您的 <backup>.sql 在任何文本编辑器中打开文件,它只是纯文本。有时备份可能是 .gz 或者 .bz 文件,但它们只是 zip:如果您解压缩这些 gzip 或 bzip 压缩文件,您最终会得到一个 .sql 您可以轻松编辑的文件。

编写一个脚本来在任意行数之后分割每个语句可能不会太难。基本的程序逻辑可能如下所示:

  1. 找到以“INSERT”开头的行。
  2. 复制该行直到单词“VALUES”的末尾
  3. 逐步完成以下所有行,边走边数。
  4. 如果您的计数器达到 300,则在最后一行末尾添加一个分号并粘贴“INSERT ...VALUES”之前的声明。将计数器重置为 1 并转到步骤 3。
  5. 如果到达以“INSERT”开头的行,请将计数器重置为 1 并转到步骤 2。

不过,您可以手动执行此操作,然后确保所有未来的备份不使用扩展插入。此外,phpMyAdmin 允许您在创建导出时设置最大语句大小,因此基本上它会为您执行上述操作。

不过,您对内存限制所做的可能是一个更简单的解决方案。对于处于类似情况且无法更改这些限制的其他人,请尝试上述操作。

有关我它的工作如下:

搜索

$max_query_lines = 300;

然后简单地更换,以

$max_query_lines = 3000;

感谢“max_query_lines”和“INSERT”解决方案!

“这两种解决方案都有一些缺点。如果没有扩展插入,输出转储将比具有扩展插入的转储大很多倍。增加 max_query_lines 将增加 bigdump 脚本的内存使用量,并且您的服务器可能会耗尽内存。”

来源: http://www.etctips.com/error-at-this-place-the-current-query-includes-more-than-xxx-dump-lines/

老问题,但我发现它通过互联网搜索,而且还没有我一直在寻找的答案,因为它看起来像phpMyAdmin已更名为设置。

要在出口phpMyAdmin的禁用“扩展插入”,则需要设置“语法插入数据时使用”设置到第一选项:

include column names in every INSERT statement 
Example: INSERT INTO tbl_name (col_A,col_B,col_C) VALUES (1,2,3)

打开bigdump.php和更改以下行:

$max_query_lines = 300;

这样:

$max_query_lines = 300000;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top