調整mysql的max_allowed_packet

  • 717
  • 0

因為要簡單測試SonarQube,需要安裝mysql,因此直接採用了docker上的mysql 

但在執行SonarQube scanner時發生了錯誤

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (10507322 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
 

查起來是因為docker裡的mysql在max_allowed_packet預設給的太小,而我產生的SonarQube結果要新增資料到mysql又太大造成失敗

因為我也只是要做一次性的測試,所以直接針對目前的mysql下了以下指令

--查看目前配置

show VARIABLES like '%max_allowed_packet%';

--更改max_allowed_packet(看狀況調整,這裡改成20MB)
set global max_allowed_packet = 2*1024*1024*10

--查看是否有更改成功
show VARIABLES like '%max_allowed_packet%'

改完後,SonarQube就執行成功了,不過因為docker中的mysql image是屬於一次性的使用,再重啟一次,這個值又還原成一開始的狀態了

若是要長期使用mysql的話,可能還是要自己寫dockerfile來調整預設的max_allowed_packet較合適