MySQL配置不当导致Sonarqube出错的一次经历:Packet for query is too large (16990374 > 13421568)

公司里部署了Jenkins + Sonarqube对项目代码进行构建和代码质量扫描。

某个大型项目报告项目构建失败。进jenkins看,该项目构建日志中的报错信息是这样的:

通过错误堆栈中的信息可以判断是Sonarqube服务器出现了500错误,所以需要到Sonarqube中继续查找原因。
登录到Sonarqube服务器上,开始翻看Sonarqube的日志文件,很快在web.log文件中发现这样的错误信息:


报错信息如下:

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

关键信息很明确:Packet for query is too large (16990374 > 13421568). You can change this value on the server by setting the max_allowed_packet' variable
错误是在mysql.jdbc产生的,显然是MySQL的配置问题。出错的是个大型项目,代码量很大,MySQL的默认配置不满足需要。
去网上搜了一下如何配置max_allowed_packet,很快找到方法,修改 /etc/my.cnf,在[mysqld]下加入以下两行:

max_allowed_packet = 1g
slave_max_allowed_packet = 1g

配置完后,重启MySQL,重启Sonarqube。

如果不重启Sonarqube,Sonarqube还是会使用原先的参数运行,会报一样的错误。

posted @ 2022-01-13 10:13  哈喽哈喽111111  阅读(203)  评论(2编辑  收藏  举报