AUDERIT.COM

フリーランスエンジニアの知識のアルバム

MySQL スキル

[MySQL]リストアの際に、読み込みファイルが大きすぎるとエラーになるので設定を変更する。

投稿日:2018年9月17日 更新日:

今回は既存のシステムの運用のため、新しいPCへのセットアップを行っている時に発生したMySQLのエラーの解消方法です。

スポンサーリンク

発生したエラーはこちら

MySQL server has gone away

テーブルのクリエイト分とそのテーブルにレコード作成のテキストファイルながら6ギガほどのSQLを実行したところ発生しました。
エラーが出てから中身を確認すると、どうやら途中までは正しく登録されているっぽい。

上記のエラーを調べてみると、原因がわかりました。待機時間が長すぎて接続が切れる際に起こるのが一般的なようですが、今回は単純に「クエリが大きすぎたため」です。

サーバー側が受け取れるクエリの上限サイズを広げてあげればうまくいきました。

手順

現在設定されているサイズの確認

mysqlに接続したら、

show variables like ‘max_allowed_packet’;

これは設定を変更した後にも流してちゃんとサイズか変わったか確認する時にも使います。
要するにどのくらいの大きさのパケットまでの通信を許容しますか?という定義値です。

スポンサーリンク

続いてMYSQLの設定ファイルを変更します。
my.iniというファイルを探してください。
私の場合は下記パスにありました。

my.iniを開いたら、一番最後にでいいのでこの記述を追加してください。

max_allowed_packet=32MB

※ここでは32MBにしていますが、必要に応じてサイズは変えてください。

なお、my.iniが上書き禁止になっていて書き込めない時は、エクスプローラー上でファイルを右クリックしてプロパティを開いて、
1.セキュリティタブに移動
2.「グループ名またはユーザー名」のUser(xxxxxxxxx)を選択し、『編集』ボタンを押下
3.「Usersのアクセス許可」の「フルコントロール」にチェックをつけて、『OK』ボタンを押下
で編集できるようになります。

あとはMySQLの再起動です。
コマンドを叩けばいいのかもしれませんが、そっちはわからなかったので、Windowsのサービスの再起動で行いました。
Windows10の手順になります。
<コントロールパネル\システムとセキュリティ\管理ツール>
にある、「サービス」のショートカットをクリックすると、サービスの一覧が立ち上がるので、そこからMySQLを探して再起動してください。

最後に再び

show variables like ‘max_allowed_packet’;

で、サイズがちゃんと大きくなっていれば完了です。

スポンサーリンク

-MySQL, スキル

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[ORACLE]ORACLEのTO_DATEを使用した年の変換について!

先日、作業中に発生した問題を共有することで少しでも皆さんが安定したリリースを迎えられますよう。。 TO_DATEによるYYYY変換の落とし穴 発生した内容でお話しするので、ピンポイントなケースになりま …

[jQuery]エラー「Target dimension not set」

jQueryを使用した画面の作成時に上手くいかなかったところ 「Target dimension not set」 の原因と対策 スポンサーリンク ターゲットの指定がない こんな感じの構造で画面に図を …

[Oracle]テーブルの最新の値を外部結合で取得したいなら。ORA-01799:列は副問い合わせに対して外部結合されません。

Oracleで発生したエラー ORA-01799:列は副問い合わせに対して外部結合されません。 他にも解決策はあるのでしょうが、今回はこれで解決 スポンサーリンク Oracleでは外部結合で最大値を取 …

[jQuery]エラー「No plot target specified」

jQueryを使用した画面の作成時に上手くいかなかったところ 「No plot target specified」 の原因と対策 スポンサーリンク ターゲットの指定がない こんな感じの構造で画面に図を …

[eclipse]エラー「インスタンスが割り当て解除されるのを待っています」

eclipseでの開発中に発生したエラーです。 「インスタンスが割り当て解除されるのを待っています」 原因はとても簡単でした。備忘録に。 スポンサーリンク メモリの解放忘れ eclipseでの開発中の …