關於max_allowed_packet

通常通過MySQL"load data local infile"語句將一個文本文件中的內容導入到數據庫中,
這樣速度會很快,但今天發現如果文本的大小超過1M時,出現異常:“Packets larger than max_allowed_packet are not allowed”  

 

MySQL的一個系統參數:max_allowed_packet,其默認值爲1048576(1M)
查詢:show VARIABLES like '%max_allowed_packet%';
修改此變量的值:MySQL安裝目錄下的my.ini文件中的[mysqld]段中的"max_allowed_packet = 1M",如更改爲4M(如果沒有這行內容,增加一行),保存,重起MySQL服務。現在可以load大於1M的文件了。

mysql max_allowed_packet 查詢和修改

MySQLWindows

mysql根據配置文件會限制server接受的數據包大小。

有時候大的插入和更新會被max_allowed_packet 參數限制掉,導致失敗。

查看目前配置

show VARIABLES like '%max_allowed_packet%';

顯示的結果爲:

 

+--------------------+---------+

| Variable_name      | Value   |

+--------------------+---------+

| max_allowed_packet | 1048576 |

+--------------------+---------+

 

以上說明目前的配置是:1M

 

修改方法

1) 方法1

可以編輯my.cnf來修改(windows下my.ini),在[mysqld]段或者mysql的server配置段進行修改。

max_allowed_packet = 20M

如果找不到my.cnf可以通過

mysql --help | grep my.cnf

去尋找my.cnf文件。

2) 方法2

(很妥協,很糾結的辦法)

進入mysql server

在mysql 命令行中運行

set global max_allowed_packet = 2*1024*1024*10

然後關閉掉這此mysql server鏈接,再進入。

show VARIABLES like '%max_allowed_packet%';

查看下max_allowed_packet是否編輯成功

發佈了21 篇原創文章 · 獲贊 37 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章