5

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

接続文字列の一部として Param を渡すことさえ試みました

jdbc:mysql://serverIP:3306/dbname?maxAllowedPacket=2048000

jdbc ドライバーに - それでも取得し続けます

クエリのパケットが大きすぎます 1080>1024

これは数時間ごとに発生し続けます。

何を確認すればよいですか?

MySQL のバージョンは 5.5 です

助けてくれてありがとう。

4

2 に答える 2

1

何かが正しく設定されていないようです... 設定を変更した後、MySQL を再起動しましたか? 両端でサイズを構成する必要があります。

クライアントとサーバーの両方に独自の max_allowed_pa​​cket 変数があるため、大きなパケットを処理する場合は、クライアントとサーバーの両方でこの変数を増やす必要があります。

ただし、サーバーのデフォルトのサイズは 1mb (1024 kb) です。あなたのエラーを考えると1080>1024、構成の変更が行われなかったと推測しています(少なくともクライアントとサーバーの両方では)。

これは、クエリ、行、またはバイナリ ログ イベントのいずれかが 1 MB を超えているために発生します。

通信パケットは、MySQL サーバーに送信される単一の SQL ステートメント、クライアントに送信される単一の行、またはマスター レプリケーション サーバーからスレーブに送信されるバイナリ ログ イベントです。

クライアントとサーバー (レプリケーション インスタンスがある場合はそれを含む) で 5 mb にバンプしてみます。変更を有効にするには、MySQL をバウンスする必要があります。

https://dev.mysql.com/doc/refman/5.5/en/packet-to-large.html

于 2016-01-29T08:12:30.040 に答える