加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql中max_allowed_packet参数设置的例子

发布时间:2016-01-14 18:24:09 所属栏目:MySql教程 来源:网络整理
导读:今天研发人员在调试java程序的时候,发现了mysql报出如下问题: java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server
今天研发人员在调试java程序的时候,发现了mysql报出如下问题:

java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server configuration of 1048576 bytes

at org.gjt.mm.mysql.Buffer.ensureCapacity(Buffer.java:398)

at org.gjt.mm.mysql.Buffer.writeBytesNoNull(Buffer.java:386)

at org.gjt.mm.mysql.PreparedStatement.executeUpdate(PreparedStatement.java:352)

at com.cicro.cws.database.DBManager.execute(DBManager.java:450)

at com.cicro.cws.publish.PreparePublish.saveSiteInstanceXmlIntoDB(PreparePublish.java:827)

at com.cicro.cws.publish.PreparePublish.generatePublishFiles(PreparePublish.java:181)

at com.cicro.cws.publish.PublishManager.publish(PublishManager.java:180)

at com.cicro.cws.synchronize.InstanceSynchronize.publishSite(InstanceSynchronize.java:954)

at com.cicro.cws.site.Site.publish(Site.java:365)

at com.cicro.cws.site.Site.run(Site.java:338)

at java.lang.Thread.run(Thread.java:536)

解决如下:

这个问题是因为导入的sql文件大于系统默认的max_allowed_packet的值,解决方法:比如在my.cnf修改增加到:max_allowed_packet=32M #或者更高,当然也可以在mysqld启动的时候加入这个参数,但是该变量必须在mysqld重新启动的时候才加载生效,所以必须重起mysqld!

我是把max_allowed_packet参数加载到了mysql启动文件mysqld中,mysqld文件部分设置如下:

${MYSQL}/bin/mysqld --user=mysql --datadir=${MYSQL}/data "$@"

--language=${MYSQL}/share/mysql/english -O max_connections=500 -O wait_timeout=600

-O key_buffer=32M --max_allowed_packet=32M --port=${port} --socket=/tmp/mysql.sock &

其中 --max_allowed_packet=32M必须有前面的――符号。

查看本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读