Mysql

導入大型 MySQL 數據庫時,最大執行時間超過 300 秒錯誤

  • September 21, 2017

我正在嘗試使用以下命令導入 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 文件實際上包含 text <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 或 mysql-workbench,如果您更喜歡 GUI),然後導入。

引用自:https://serverfault.com/questions/423062