MySQL 常用配置變量-max_allowed_packet

控制一個數據包或由 mysql_stmt_send_long_data() C API 函數發送的任何參數的最大大小。 默認值爲 4MB,要注意,客戶端和服務端都要同時設置爲一樣大的值,比如在 mysqldump 備份的時候,生成整表單條 insert 語句的時候,太小的值可能導致備份失敗。一般建議設置爲32M 或 64M。

  • 包消息緩衝區初始化爲 net_buffer_length 定義值大小,但在需要時可以增長到 max_allowed_packet 定義值大小。
  • 如果使用 BLOB 列或長字符串,則必須增加此值。設置爲你想要使用的最大 BLOB 一樣大, max_allowed_packet 的協議限制爲 1GB。該值應爲 1024 的倍數;否則四捨五入取最接近的倍數。
  • 當您通過更改 max_allowed_packet 變量的值來更改消息緩衝區大小時,如果客戶端程序允許修改,還應該同時更改客戶端的緩衝區大小。內置到客戶端庫中的默認 max_allowed_packet 值爲1GB,但各個客戶端程序可能會使用此參數定義另外一個值,該值將覆蓋客戶端庫中的默認值。例如,mysql 和 mysqldump 分別定義一個默認值 16MB 和 24MB。它們還允許您通過在命令行或選項文件中設置 max_allowed_packet 來更改客戶端值。
  • 全局變量,會話變量,動態變量(注意,僅僅只是全局動態,會話是隻讀的,so,這個變量特殊的地方是會話變量是隻讀,所以對於服務端來講,動態修改全局值會立即影響當前會話發送的包大小,此時會忽略會話值的大小,而客戶端接收的大小仍然是以會話值爲準的。因此建議在動態修改這個值之後,斷開連接重連,避免讓你認爲發生了靈異事件),單位爲字節。5.6.5 及其之前版本默認值爲 1M,5.6.6 開始默認爲 4M,最小值爲 1K,最大值爲 1G,整型值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章