Mysql中max_allowed_packet参数设置的例子
今天研发人员在调试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/ (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |