Packets larger than max_allowed_packet are not allowed(mysqlデータクエリープロンプト:許容最大パケットを超えない)ソリューション

1394 ワード

問題の背景:
まず私のプロジェクトの运用する时Mysql、1つのデータの更新の操作をする时、异常をヒントにします:System.Exception:“ExecuteNonQuery:Packets larger than max_allowed_packet are not allowed.”,ネット上のいくつかのシナリオを検索したのは、主にローカル・データベースで最大クエリーを実行するパケットが小さすぎるためであり、この実行データの更新が成功しなかったため、後の操作ができなかったためでもある.
説明:
一般的なデフォルトではmax_allowed_パッケージのサイズはデフォルトで1024*1024(1 Mb)ですが、まずコマンドを使用できます.
    :show VARIABLES like '%max_allowed_packet%';

私が調べた結果はmax_allowed_packet:1024間違いなくこれが問題です.
解決方法:
SQL文を使用して制限を変更します(3つの推奨方法):
長さ制限を32 MBに設定します.
SET GLOBAL max_allowed_packet=32*1024*1024; 

長さ制限を1 GB(MySQLサーバで許可されている最大値)に設定します.
SET GLOBAL max_allowed_packet=1024*1024*1024; 

セッションSET SESSIONを直接設定:
SET SESSION max_allowed_packet=1024*1024*1024; 

最後に、上記のいずれかの方法で変更した後、データベースを再起動し、クエリー・パケットのサイズが変更されたかどうかを確認します.
show VARIABLES like '%max_allowed_packet%';

 
Linuxはmyを編集します.cnfは修正して、windowsはmyを編集します.ini構成
MySQLサーバーを停止します.
独自のデータベース・インストール環境に基づいて構成するには、次の手順に従います.
windows    mysql   ,  my.ini      :

max_allowed_packet = 32M

 

Linux     :my.cnf

mysql --help | grep my.cnf

   my.cnf  

linux     /etc/ 

プロファイルの変更が完了したら、データベースを再起動します.