mysql type allowed_mysql 的 max_allowed_packet 设置后经常变化

环境:linux centOS6.5 数据库:mysql 5.1.73,因为数据表中含有blob字段,所以我在/etc/my.cnf中设置max_allowed_packet = 4M,但是一段时间(这个时间不确定)后,项目出现无法访问数据库的情况,项目重新启动报如下错误:

Caused by: org.hibernate.exception.GenericJDBCException: Packet for query is too large (8742 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)

at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)

at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)

at com.sun.proxy.$Proxy140.executeQuery(Unknown Source)

at org.hibernate.loader.Loader.getResultSet(Loader.java:1897)

at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1698)

at org.hibernate.loader.Loader.doQuery(Loader.java:832)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)

at org.hibernate.loader.Loader.loadEntity(Loader.java:1977)

at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)

at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)

at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3821)

at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)

at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)

at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)

at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)

at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)

at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1075)

at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1002)

at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:613)

at org.hibernate.type.EntityType.resolve(EntityType.java:441)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:134)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:999)

at org.hibernate.loader.Loader.doQuery(Loader.java:878)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)

at org.hibernate.loader.Loader.doList(Loader.java:2382)

at org.hibernate.loader.Loader.doList(Loader.java:2368)

at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2198)

at org.hibernate.loader.Loader.list(Loader.java:2193)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1244)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:257)

... 32 more

重启数据库后又可以正常访问,很明显是max_allowed_packet 变成了1024字节了,不知道这样的问题各位大神有没有相关处理经验,请指教,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值