用mysqldump命令導出MySQL數據庫之後,導入數據庫時經常會使用如下命令。
代碼如下 復制代碼mysql --default-character-set=utf8 -u root -p dbname < alldata.sql
但是當我們導出來的MySQL數據庫較大的時候,經常會遇到如下錯誤信息。
ERROR 2006 (HY000) at line **: MySQL server has gone away
一般情況下是因為max_allowed_packet參數(默認是1MB)的限制所導致的,因此我們需要調整max_allowed_packet參數並重啟MySQL。
查看現在的max_allowed_packet的大小。
代碼如下 復制代碼show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
如下修改my.cnf文件之後,重啟MySQL就可以解決。
代碼如下 復制代碼[mysqld]
max_allowed_packet = 32MB
max_allowed_packet是控制從客戶端向MySQL服務端可傳送包(packet)的大小的參數,因此需要傳送較大文件時提前修改max_allowed_packet參數。