27

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

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

誰かが私に何が悪いのか教えてもらえますか?

4

14 に答える 14

39

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

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

[mysqld]
max_allowed_packet= 64M
wait_timeout= 6000
于 2012-08-20T22:08:38.593 に答える
12

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

ドキュメントから:

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

于 2011-05-19T06:49:18.717 に答える
4

INSERTクエリが、複数行の大きすぎる1行のステートメントである場合によく発生します。

于 2014-06-02T05:56:45.517 に答える
3

次の2006エラー関連の修正を試してください:

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

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

于 2011-05-19T06:53:12.990 に答える
3

mysqlサーバーを再起動してみてください。サーバーが正しく機能していない可能性がありますが、それを表示しているSQL通知機能も実行されています。

于 2015-12-29T07:17:20.017 に答える
2

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

edit / Preferences / mysql/defaultターゲットバージョン
ここに画像の説明を入力してください

于 2016-06-14T02:23:09.903 に答える
2

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)
于 2018-09-24T07:22:14.877 に答える
1

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

1048576/1024/1024を選択します

5242880/1024/1024を選択します

于 2014-10-15T20:46:34.247 に答える
1

mySql変数を表示する

  • 'max%'のような変数を表示する

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

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

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

于 2017-02-14T10:05:13.953 に答える
1

MySQL 5.7では、このエラーは通信パケットが大きすぎるために発生する可能性があります。

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

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

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

ドキュメントは次の場所にあります。DOCSQL スクリプトがこのサイズより大きい場合は
max_allowed_pa​​cketをより大きな値(デフォルト値は4MB)に設定して解決する必要があります。この値はオプションファイル内で設定できるため、毎回設定する必要はありません。
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
詳細情報(他のSOについても)ここに

于 2017-05-05T09:49:59.047 に答える
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コマンドであるため、noramalコマンドのように実行できます。

于 2017-04-11T08:04:47.233 に答える
0

サーバーの接続がオフラインで、パスワードが変更される前に作成されたMySQL接続を使用している場合があります。そのため、サーバーのパスワードが変更された後、新しい接続を作成してSQLプラクティスを使用する必要があります。

于 2019-12-13T10:50:30.057 に答える
0

テーブルの最後に列を追加しようとすると、MySQLWorkbench8.0を使用するMySQLでこれが頻繁に発生していることがわかりました。さらに、テーブルはロックされて使用できなくなります。テーブルをドロップしようとすると、1日か2日後まで機能しません。ただし、既存の列の間に新しい列を挿入しても問題はないことがわかりました...

于 2020-01-29T13:17:52.853 に答える
0

INSERTクエリが、複数行の大きすぎる1行のステートメントである場合。

于 2021-12-15T10:13:24.290 に答える