【发布时间】:2016-05-06 21:07:28
【问题描述】:
我有一个连接到 MySQL Db / java 应用程序的 tomcat 应用程序
我一直在努力
查询包过大 1080>1024
我尝试更改 my.cnf: 在 my.cnf 中,最大数据包大小定义为 50 MB 和
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
lower_case_table_names = 1
skip-external-locking
bind-address = 0.0.0.0
key_buffer = 16M
max_allowed_packet = 50M
thread_stack = 192K
thread_cache_size = 8
group_concat_max_len=100000
innodb_lock_wait_timeout=300
innodb_buffer_pool_size=22G
innodb_locks_unsafe_for_binlog = ON
innodb_additional_mem_pool_size=40M
我什至尝试将参数作为连接字符串的一部分传递
jdbc:mysql://serverIP:3306/dbname?maxAllowedPacket=2048000
到 jdbc 驱动程序 - 我仍然不断得到 p>
查询包过大 1080>1024
每隔几个小时就会出现这种情况。
我应该检查什么?
MySQL 版本是 5.5
感谢您的帮助。
【问题讨论】:
-
在客户端 - 是
maxAllowedPacket还是max_allowed_packet? -
您正在运行什么样的查询?如果您正在操作 BLOB,则需要使用不同的技术来回推送数据。一个 50MiB 的数据包看起来很离谱。
-
无关注释:
innodb_additional_mem_pool_size是 worthless setting,除非您使用 MySQL 的内部内存分配器而不是标准的malloc(您不应该这样做)。该设置已在更高版本的 MySQL 中删除。
标签: mysql tomcat tomcat-jdbc