MySQL で max_allowed_packet
を超過した場合にどうなるんだっけ…と思って試してみた結果。
サーバーの max_allowed_packet をクエリが超過した場合
MySQL 5.6
サーバー起動
% docker run --name mysql56 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.6 --max-allowed-packet=100000
クライアントは原因がわからないけど切断される
% ruby -e 'puts "set @a="+"1"*1000000' | docker exec -i mysql56 mysql ERROR 2006 (HY000) at line 1: MySQL server has gone away
サーバー側はログ出力なし
% docker logs mysql56 ...
MySQL 5.7
サーバー起動
% docker run --name mysql57 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.7 --max-allowed-packet=100000
クライアントは原因がわからないけど切断される
% ruby -e 'puts "set @a="+"1"*1000000' | docker exec -i …[さらに読む]