MYSQLデータベースをインポートしようとすると、次のエラーが表示されます。
Error Code: 2013 - Lost connection to MySQL server during queryQuery:
Error Code: 2006 - MySQL server has gone away
誰かが私に何が間違っているのか教えてもらえますか?
ここ このエラーとそれを回避/解決するさまざまな方法について詳しく読むことができます
ドキュメントから:
MySQLサーバーがエラーをなくした最も一般的な理由は、サーバーがタイムアウトして接続を閉じたことです。
調査の結果、my.cnfのmysqlのmax_allowed_packetおよびwait_timeoutの設定について正しく話している多くのソリューションが示されています。 mac osxでのmysqlのデフォルトインストールにはこのファイルが含まれていないように見えるという小さな補足事項。最初に/etc/my.cnfで作成する必要があるかもしれません(これは、mampスタックなどの代わりにmysqlのデフォルトインストールを使用している場合にのみ問題です)
以下のこの問題を修正した/etc/my.cnfの内容:
[mysqld]
max_allowed_packet= 64M
wait_timeout= 6000
INSERTクエリが複数の行を含む大きすぎる単一行ステートメントである場合、よく起こります。
2006エラー関連の修正に従ってください。
サーバーがタイムアウトし、接続を閉じました。修正方法:mysqldのmy.cnf構成ファイルのwait_timeout変数が十分に大きいことを確認します。
サーバーが誤ったパケットまたは大きすぎるパケットをドロップしました。 mysqldが受信したパケットが大きすぎるか正しくない場合、クライアントに何らかの問題が発生したと見なされ、接続が閉じられます。 my.cnfファイルのmax_allowed_packetの値を増やすことにより、最大パケットサイズ制限を増やすことができます。
Mysqlサーバーを再起動してください。サーバーが正常に動作していない可能性もありますが、SQL Notifierが実行されていることも表示されます。
この問題があなたに起こっている多くの理由があります、 ここ あなたは考えられるすべての理由を見つけることができます、私は個人的にパケットサイズに苦労していますしかし、my.iniファイルを更新しましたが、その前に、1048576B = 1MBを与えていたmax_allowed_packet変数を確認し、5MBに更新しました。 variable_nameが '%packet%'のような変数を表示します
1048576/1024/1024を選択
5242880/1024/1024を選択
MySql変数を表示する
「max%」などの変数を表示
グローバル設定max_allowed_packet = {PacketRANGE}; //このように10485760;
'max_all%'のようなグローバル変数を表示します。
コーディングをお楽しみください こちら
MySQL 5.7では、このエラーは大きすぎる通信パケットによって生成される可能性があります。
MySQLクライアントまたはmysqldサーバーがmax_allowed_packetバイトよりも大きいパケットを受信すると、ER_NET_PACKET_TOO_LARGEエラーを発行して接続を閉じます。 一部のクライアントでは、通信パケットが大きすぎる場合、クエリエラー中にMySQLサーバーへの接続が失われる場合があります。
MySQLのパケットは次のとおりです。
通信パケットは、MySQLサーバーに送信される単一のSQLステートメント、クライアントに送信される単一の行、またはマスター複製サーバーからスレーブに送信されるバイナリログイベントです。
ここでドキュメントを見つけることができます: [〜#〜] doc [〜#〜]
max_allowed_packetをより大きい値(デフォルト値は4MB)に設定して、SQLスクリプトがこのサイズより大きいかどうかを解決する必要があります。この値はオプションファイル内で設定できるため、毎回設定する必要はありません。
Microsoft Windows Vista以降では、max_allowed_packetをファイルに設定できます
%PROGRAMDATA%\ MySQL\MySQL Server 5.7\my.ini
または
%PROGRAMDATA%\ MySQL\MySQL Server 5.7\my.cnf
pROGRAMDATA = C:\ ProgramData
詳細(その他のS.O.についても) [〜#〜] here [〜#〜]
my.cnf
ファイルを編集する代わりの方法を次に示します。 MySQLサーバーにログインして、MySQLグローバル変数の値を設定できます。
次のコマンドを使用して、すべてのMySQLグローバル変数とその値のリストを確認できます。
$> mysqladmin variables -u YourMysqlUsername -p
最初にMySQLサーバーにログインして、これらの変数値を確認することもできます。
$> mysql -u YourMysqlUsername -p
mysql> SHOW VARIABLES;
特定の変数値を確認するには:
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
MySQL Server Gone Awayエラーを解決するには、
max_allowed_packet
変数の値を増やす必要があります。
mysql> SET GLOBAL max_allowed_packet=1072731894;
mysql> quit
これで、再度MySQLにログインしてmax_allowed_packet
値を確認すると、更新された値が表示されるはずです。
$> mysql -u YourMysqlUsername -p
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+------------+
| Variable_name | Value |
+--------------------+------------+
| max_allowed_packet | 1072731136 |
+--------------------+------------+
1 row in set (0.00 sec)
チューダーが彼の反応で言及したように:
The most common reason for the MySQL server has gone away error is that the
server timed out and closed the connection
次のコマンドを使用して、最大実行時間とサイズを変更する必要があります。
SET GLOBAL wait_timeout = 6000;
SET GLOBAL max_allowed_packet= 64M;
これらはsqlコマンドなので、通常のコマンドのように実行できます。