超大sql文件使用navicat導入會很慢,還有可能報“mysql server has gone away”錯誤
可以登陸mysql服務器使用source命令導入,會快很多,我這裏導入500M,大概用了5分鐘。
1. liunx登陸mysql
mysql -u 用戶名 -p 數據庫名
然後輸入密碼
登陸mysql控制檯後,執行source命令,等待執行完成就好,(如果你的文件過大,執行報錯,那麼你需要用到第二步)
source /home/xxx.sql //這裏是你上傳到linux上到sql文件路徑
2.修改max_allowed_packet值
sql文件過大,mysql執行時超過最大包大小,導致連接斷開,導入時報“mysql has gone away”錯誤
客戶端max_allowed_packet取值範圍4096-2G,默認值是16M
客戶端net_buffer_length取值範圍1024-512M,默認值16K
服務器max_allowed_packet取值範圍1024-1G,默認值是1M
服務器net_buffer_length取值範圍1024-1M, 默認值16K
//查看通信緩衝區的大小
show global variables like 'max_allowed_packet';
//調整大小到500M
set global max_allowed_packet=1024*1024*500;
接下來重新導入,導入成功!
注:修改只對當前有效, 重啓了MySQL他就還是會恢復原來的大小。如果是想永久生效,可以修改配置文件,在 mysql安裝目錄,在my.ini(windows下)或者my.cnf(linux下)中加入或修改配置參數:
max_allowed_packet = 500M
重啓MySQL服務...