mysqldump
をロードしようとしていますが、次のエラーが発生し続けます。
エラーX(HY000)行X:クエリ中にMySQLサーバーへの接続が失われました
/etc/my.cnf
:
[mysqld]
max_allowed_packet = 16M
net_read_timeout = 30
net_write_timeout = 60
...
[mysqldump]
max_allowed_packet = 16M
これらの値を大きくしようとしましたが、何があってもエラーが発生し続けます(このエラーを克服するために他に何ができますか?
ここにある他のすべての解決策が失敗する場合は、syslog(/ var/log/syslogなど)をチェックして、クエリ中にサーバーのメモリが不足していないかどうかを確認してください。
スワップファイルを構成せずにinnodb_buffer_pool_sizeを物理メモリに近づけすぎると、この問題が発生しました。 MySQLは、データベース固有のサーバー設定innodb_buffer_pool_sizeを最大で物理メモリの約80%に設定することを推奨しています。 innodb_buffer_pool_sizeを約80%に戻し、問題を修正しました。
エラーコードERROR 2013(HY000)中止された接続に関連しています。これを確認するには、次のコマンドを実行します。
mysql> SHOW GLOBAL STATUS LIKE 'Aborted_connects';
接続しようとするたびにカウンターが1つ増える場合は、接続の問題です。
この問題を解決する1つの方法として、構成ファイルの接続タイムアウト値を増やすことができます。これを行うには、次のコマンドを使用します。
mysql> SET GLOBAL connect_timeout = 10;
これがお役に立てば幸いです。ありがとうございました。
Mysqldumpをロードするためにどのコマンドを使用していますか?これは本番サーバーですか?ダンプのサイズは?ダンプのフォーマット(.gzまたは.sql)?
再起動が原因でエラーが発生したかどうかを確認し、そうであれば1)mysqlのメモリ割り当てを確認します2)innodb_buffer_poolサイズを減らしてメモリ割り当てを減らします
これは、スワップの使用を減らすのに役立ちます。