导入大型 MySQL 数据库时出现最大执行时间超出 300 秒错误

导入大型 MySQL 数据库时出现最大执行时间超出 300 秒错误

我正在尝试使用以下命令导入 641 MB MySQL 数据库:

mysql -u root -p ddamiane_fakty < domenyin_damian_fakty.sql

但我收到一个错误:

ERROR 1064 (42000) at line 2351406: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<br />
<b>Fatal error</b>:  Maximum execution time of 300 seconds exceeded in <b' at line 253

然而限制要高得多:

mysql> show global variables like "interactive_timeout";
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 28800 |
+---------------------+-------+
1 row in set (0.00 sec)

mysql> show global variables like "wait_timeout";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

答案1

在我看来,您的 .sql 文件实际上包含文本<br /> <b>Fatal error</b>: Maximum execution time of 300 seconds exceeded in <b,这显然不是有效的 sql。您可能使用 phpMyAdmin 等工具导出了数据库,该工具花费了超过 300 秒的时间来创建导出,并且当时导出过程被缩短了。

答案2

这是 .sql 文件中的语法错误。其中应该有一行“<b>严重错误:在

在我看来,这个错误很像 PHP 错误。在数据库导出/转储期间,php 在 300 秒后停止,并将错误写出到其输出 -> 您的文件中。

您应该修复 php.ini,以延长执行时间,然后将整个数据库导出到新文件,然后导入新文件(我猜数据库当然是通过 PHP 导出的)。或者使用其他工具转储数据库(例如 mysqldump,或者如果您更喜欢 GUI,则使用 mysql-workbench),然后导入它。

答案3

我知道这是一个老问题但我想澄清一下你是如何得到这个错误的。

通常,当您将大型 MySQL 数据库导出到 SQL 文件但导出未成功完成时,会产生此错误,从而导致 SQL 文件的一半附加了 MySQL 错误。

然后,您假定导出成功并尝试将其导入到其他地方,但出现了此错误。

相关内容