[mysqldump] Mysqldump時出現記憶體錯誤Out of memory

URL Link //n.sfs.tw/10920

2017-03-19 02:24:18 By 張○○

當進行 mysqldump 時出現 Out of memory (Needed xxxxx bytes) 的錯誤,該如何處理?

$ mysqldump -uroot -p -B mydatabase > db_ae.sql
Enter password:
mysqldump: Out of memory (Needed 1477684 bytes)
mysqldump: Got error: 2008: MySQL client run out of memory when retrieving data from server

解決

當一個MySQL客戶或mysqld server得到一個比max_allowed_packet 設定還長的封包,會出現 Packet too large 錯誤並終止連接。

解法一、可以修改 mysql 的設定檔

一、修改 /etc/my.cnf,加入這行

[mysqld]
max_allowed_packet = 64M

二、重啟mysql
# /usr/local/etc/rc.d/mysql-server restart

三、再重新dump

解法二、若只是一個 mysql 客戶,沒有修改設定檔的權限怎麼處理?

你可以使用以下指令來設定更大的緩衝區,例如 8M:

# mysqldump  --set-variable=max_allowed_packet=64M -uroot -p -B mydatabase > db_ae.sql

相關文章

[Mysql/MariaDB] 修改資料輸入上限max_allowed_packet@精讚