MySQL修改資料庫表的預設空間配置(兩種方式實現)
阿新 • • 發佈:2018-11-28
一:問題背景介紹.
1. MySQL插入1000W條資料的時候因資料量大於單表預設資料量而報錯.(MySQL 5.7)
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_allowed_packet’ variable.
描述:說明單表的預設儲存空間存不下了,導致資料寫入單表失敗了,需要修改預設的儲存空間大小為更大的.
2. MySQL的單表預設儲存大小.
MYSQL預設的儲存空間大小是:4194304/1024/1024=4M.
(方式一:基於MySQL命令列的修改方式)
3. Navicat下檢視單表的預設大小.
show VARIABLES like 'max_allowed_packet';
4. 修改預設的單表儲存大小.(這裡以修改為10M為例進行測試).
set global max_allowed_packet=10*1024*1024;
現在查詢一下大小.(發現沒有生效).
關閉這個視窗重新登入一下Navicat的命令列介面.(關鍵)10485760/1024/1024=10M
但是現在檢視MySQL的配置檔案發現max_allowed_packet還是預設的4M,因為是臨時生效,並未修改配置檔案.
(方式二:基於配置檔案的修改方式)
還可以通過配置檔案的方式來修改:MySQL服務的路徑下修改
如果修改會提示拒絕訪問的.(出於MySQL伺服器安全性考慮).
賦予修改許可權即可.
點選應用->確定.