我正在尝试使用以下命令导入 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)
在我看来,您的 .sql 文件实际上包含文本
<br /> <b>Fatal error</b>: Maximum execution time of 300 seconds exceeded in <b
,这显然不是有效的 sql。您可能已经使用诸如 phpMyAdmin 之类的工具导出了您的数据库,该工具花费了超过 300 秒的时间来创建导出,但在那个时间点被缩短了。这是 .sql 文件中的语法错误。那里应该有一行“<b>致命错误:超过 300 秒的最长执行时间
这个错误在我看来很像 PHP 错误。在数据库导出/转储期间,php 在 300 秒后停止,并将错误写入其输出 -> 您的文件。
你应该修复 php.ini,允许更长的执行时间,然后将整个数据库导出到一个新文件,然后导入新文件(我猜数据库当然是通过 PHP 导出的)。或者使用其他工具转储数据库(如 mysqldump,如果您更喜欢 GUI,则使用 mysql-workbench),然后导入它。
我知道这是一个老问题,但我想澄清一下你是如何得到这个错误的。
通常,当您将大型 MySQL 数据库导出到 SQL 文件但导出未成功完成导致 SQL 文件的一半附加了 MySQL 错误时,会产生此错误。
然后您假设导出成功并尝试将其导入其他地方并收到此错误。