運維同事近日給到我這邊一個mysql的備份腳本文件,大小超過2.4G。
於是直接通過Navicat客戶端導入腳本,但是報錯:MySQL server has gone away。
於是想通過截取文件,部分導入,事與願違
由於文件太大,一般的軟件比如記事本notepad和notepad++,editplus都無法正常打開。
幾經周轉發現UltraEdit能夠打開4G的文件。
比較好奇,為啥幾次都不能通過直接在客戶端導入,發現問題的原因是mysql的
max_allowed_packet配置的默認值設置太小,但是max_allowed_packet 最大值是1G(1073741824),如果設置超過1G,查看最終生效結果也只有1G。
運行2.4G的腳本還是失敗。
圖中設置4G(3221225472)
嘗試在服務端使用命令導入
mysql.exe -h localhost -u root -p < D:\DataBase\mysql-20200424.sql
超大mysql的腳本文件想要直接導入需要在服務端使用命令才可以。
總結:
1.如果sql腳本少於1G,可以通過修改max_allowed_packet參數,重啟mysql服務,在客戶端執行導入成功。
2.如果超過1G,需要在服務端使用命令行導入。
3.如果只需要導入部分數據,使用UltraEdit打開sql腳本,找出需要的內容,在客戶端執行導入即可。