MYSQL備份BLOB還原后出錯
問題背景:
最近在考慮將公司的數據備份存儲到云端,但是在備份BLOB類型的數據時,還原時出現了一些問題,具體情況如下。
備份流程:
使用MYSQL自帶的mysqldump命令備份數據庫,其中包含了BLOB類型的數據。
還原流程:
使用MYSQL的命令行工具,執行還原語句,出現了錯誤。
錯誤描述:
在執行還原操作時出現了一個ERROR 1118 (42000)的錯誤,提示Blob column 過大,無法執行操作。
錯誤解決:
經過查閱相關資料和實踐,發現是MYSQL在還原BLOB類型數據時默認使用了max_allowed_packet的大小作為還原的緩存,因為在默認的情況下max_allowed_packet大小只有16M,比較小,所以導致了這個錯誤。
解決方案:
通過修改max_allowed_packet的大小,增大其緩存的大小即可解決這個錯誤。具體操作可以通過修改MYSQL配置文件中的max_allowed_packet大小來完成(需要重啟MYSQL服務使得配置生效)。
總結:
在進行MYSQL備份BLOB類型數據還原時,需要注意max_allowed_packet的大小,如果出現錯誤,可以通過修改該參數值來解決。
上一篇mysql備份sql文件
下一篇mysql備份一個表