web-dev-qa-db-ja.com

MYSQLエラーの取得:「エラーコード:2006-MySQLサーバーがなくなりました」

MYSQLデータベースをインポートしようとすると、次のエラーが表示されます。

Error Code: 2013 - Lost connection to MySQL server during queryQuery:
Error Code: 2006 - MySQL server has gone away

誰かが私に何が間違っているのか教えてもらえますか?

22
meetpd

ここ このエラーとそれを回避/解決するさまざまな方法について詳しく読むことができます

ドキュメントから:

MySQLサーバーがエラーをなくした最も一般的な理由は、サーバーがタイムアウトして接続を閉じたことです。

9

調査の結果、my.cnfのmysqlのmax_allowed_pa​​cketおよびwait_timeoutの設定について正しく話している多くのソリューションが示されています。 mac osxでのmysqlのデフォルトインストールにはこのファイルが含まれていないように見えるという小さな補足事項。最初に/etc/my.cnfで作成する必要があるかもしれません(これは、mampスタックなどの代わりにmysqlのデフォルトインストールを使用している場合にのみ問題です)

以下のこの問題を修正した/etc/my.cnfの内容:

[mysqld]
max_allowed_packet= 64M
wait_timeout= 6000
34
Rafe Hatfield

INSERTクエリが複数の行を含む大きすぎる単一行ステートメントである場合、よく起こります。

3
Bimal Poudel

2006エラー関連の修正に従ってください。

  • サーバーがタイムアウトし、接続を閉じました。修正方法:mysqldのmy.cnf構成ファイルのwait_timeout変数が十分に大きいことを確認します。

  • サーバーが誤ったパケットまたは大きすぎるパケットをドロップしました。 mysqldが受信したパケットが大きすぎるか正しくない場合、クライアントに何らかの問題が発生したと見なされ、接続が閉じられます。 my.cnfファイルのmax_allowed_pa​​cketの値を増やすことにより、最大パケットサイズ制限を増やすことができます。

3
CloudyMarble

私はすべてのソリューションを試しましたが、何も機能しませんでした
ワークベンチを使用して、hostgatorをリモート接続します
mysqlサーバーhostgatorは5.5バージョンであり、ワークベンチではバージョン5.6に設定されていることに気付きました。
ワークベンチを5.5に設定すると、彼は働き始めました

edit/preferences/mysql/defaultターゲットバージョン
enter image description here

2
Rafael Sudbrack

Mysqlサーバーを再起動してください。サーバーが正常に動作していない可能性もありますが、SQL Notifierが実行されていることも表示されます。

2
andrew

この問題があなたに起こっている多くの理由があります、 ここ あなたは考えられるすべての理由を見つけることができます、私は個人的にパケットサイズに苦労していますしかし、my.iniファイルを更新しましたが、その前に、1048576B = 1MBを与えていたmax_allowed_pa​​cket変数を確認し、5MBに更新しました。 variable_nameが '%packet%'のような変数を表示します

1048576/1024/1024を選択

5242880/1024/1024を選択

1
dennisbot

MySql変数を表示する

  • 「max%」などの変数を表示

  • グローバル設定max_allowed_pa​​cket = {PacketRANGE}; //このように10485760;

  • 'max_all%'のようなグローバル変数を表示します。

コーディングをお楽しみください こちら

1
Shaam

MySQL 5.7では、このエラーは大きすぎる通信パケットによって生成される可能性があります。

MySQLクライアントまたはmysqldサーバーがmax_allowed_pa​​cketバイトよりも大きいパケットを受信すると、ER_NET_PACKET_TOO_LARGEエラーを発行して接続を閉じます。 一部のクライアントでは、通信パケットが大きすぎる場合、クエリエラー中にMySQLサーバーへの接続が失われる場合があります。

MySQLのパケットは次のとおりです。

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

ここでドキュメントを見つけることができます: [〜#〜] doc [〜#〜]
max_allowed_pa​​cketをより大きい値(デフォルト値は4MB)に設定して、SQLスクリプトがこのサイズより大きいかどうかを解決する必要があります。この値はオプションファイル内で設定できるため、毎回設定する必要はありません。
Microsoft Windows Vista以降では、max_allowed_pa​​cketをファイルに設定できます
%PROGRAMDATA%\ MySQL\MySQL Server 5.7\my.ini
または
%PROGRAMDATA%\ MySQL\MySQL Server 5.7\my.cnf

pROGRAMDATA = C:\ ProgramData
詳細(その他のS.O.についても) [〜#〜] here [〜#〜]

1
alcott80

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)
0

チューダーが彼の反応で言及したように:

 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コマンドなので、通常のコマンドのように実行できます。

0
Peter verleg