mysql が大量のデータをインポートすると MySQL サーバーが消えてしまう問題の解決策

jacklove
リリース: 2018-06-08 23:20:36
オリジナル
2734 人が閲覧しました

仕事の都合上、200MほどのSQLをユーザーライブラリにインポートする必要があります

コマンド

mysql> use user
Database changed
mysql> source /tmp/user.sql
ログイン後にコピー

を実行すると、インポート処理中にエラーMySQLサーバーが消えましたが発生し、データインポートが完了しました失敗した。

エラーメッセージは次のとおりです:

ERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    11Current database: userERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    12Current database: userERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    13Current database: user
ログイン後にコピー

最初はタイムアウトが原因だと思ったので、connect_timeoutwait_timeoutの値を増やしました。

再実行しても問題が残ります。
解決策:

情報を確認したところ、max_allowed_pa​​cketパラメータを見つけました。
公式の説明では、クライアントから大規模なデータを転送するときにシステムがより多くの拡張子を割り当てることができるように、max_allowed_pa​​cketパラメータを適切に増やすことです。処理するメモリに転送します。

mysql max_allowed_pa​​cketの値を確認してください

mysql> show global variables like 'max_allowed_packet';
+--------------------+---------+| Variable_name      | Value   |
+--------------------+---------+| max_allowed_packet | 4194304 |
+--------------------+---------+
ログイン後にコピー

それが4Mであることがわかり、それから256M(1024*1024*256)

mysql> set global max_allowed_packet=268435456;
Query OK, 0 rows affected (0.00 sec)mysql> show global variables like 'max_allowed_packet';
+--------------------+-----------+| Variable_name      | Value     |
+--------------------+-----------+| max_allowed_packet | 268435456 |
+--------------------+-----------+1 row in set (0.00 sec)
ログイン後にコピー

に増加します。変更後、インポートを実行すると、すべてが正常です。そして問題は解決されました。
注:
max_allowed_pa​​cket の値を変更するには、set global コマンドを使用します。この値は無効になり、mysql を再起動するとデフォルト値に戻ります。

再起動後に復元したくない場合は、my.cnfファイルを開いてmax_allowed_pa​​cket = 256Mを追加できます。

この記事では、mysql が大量のデータをインポートするときに MySQL サーバーが消えてしまう問題の解決策について説明します。関連コンテンツの詳細については、PHP 中国語 Web サイトを参照してください。

関連する推奨事項:

mysql 近くの N キロメートル以内のデータのインスタンスを検索します

mysql 接続が中断されたときに自動的に再接続するメソッド

php HTML エンティティ番号と非 ASCII 文字列を変換するためのクラス

以上がmysql が大量のデータをインポートすると MySQL サーバーが消えてしまう問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート