普段自分でPHPのコーディングをする際にXamppのphpmyadminで開発環境を構築しているのだが、先日突然Mysqlが開けなくなった。
「Error: MySQL shutdown unexpectedly~~」とエラーには出るが、決定的な対処法までは記述されていなかったので、今回自分がやったエラー解決方法をメモとして残しておく。
普段自分でPHPのコーディングをする際にXamppのphpmyadminで開発環境を構築しているのだが、先日突然Mysqlが開けなくなった。
「Error: MySQL shutdown unexpectedly~~」とエラーには出るが、決定的な対処法までは記述されていなかったので、今回自分がやったエラー解決方法をメモとして残しておく。
Table of Contents
Xamppのmysqlでは3306というポートが使われており、他にもこれと同じ番号のシステムが動いているとエラーが出るらしい。
なので、まずはXamppの右側にあるNeststatをクリックし、3306のポート番号が重複していないかを確認し、もし該当するシステムが動いてたら、それを停止すればオッケー。
※追記
最近Docerを入れたのだが、それがバックグラウンドで動いていたため、3306のポートの競合が起きる現象が発生した。
その場合はCtrl + Shift + Esc でバックグラウンド起動しているソフトを確認できるので、右クリック→「タスクの終了」を押せばオッケーだ。
上記は根本的な解決にならないので、my.iniの中に入ってポート3306に設定されている箇所をxamppのポート番号を3307に変更してもいい。
$cfg['Servers'][$i]['host'] = '127.0.0.1:3307';また、これまで作ったWPサイトなどは、wp-configのホスト設定で「localhost」になっている箇所を「127.0.0.1:3307」にする必要がある
define( 'DB_HOST', '127.0.0.1:3307' );これを設定しなければ、phpmyadminに入る際にエラーが出るので注意
結果から言うと、自分はポートではなくxampp/mysql/data の中身をいじれば改善できた。
上記で何とか治ったが、なぜエラーが出たのか未だに原因は不明だが、MySQLを停止させずにシャットダウンさせるとこのような現象が起こることがあるらしい。
自分はこれまで数回同じ現象が起きたので、Xamppは必ずstopを押して閉じた方がよさそうだ。
ちなみに、これからしばらくしてから下記のようなとんでもないエラーが起きたので、同じような境遇の人は参考にしてもらいたい。
XAMPPのエラーを解決したらデータベースのテーブルが破損して焦った件
追記になるが、また同じバグが発生し、今度はワードプレス画面にすら戻れなくなる現象が起きたが、最初にバックアップをとった下記のファイルをdataに突っ込んだら直った。
ibdata1
直接記事ページに行こうとするとエラーが出たが、管理画面から一度記事ページに行くとこのエラーはでなくなる。
とりあえずdataの中身は定期的にバックアップをとっておいた方がよさそうだ。
Laravelのeditフォームだけselectのバリデーションエラーになる原因と解決方法
Laravel マイグレーション命名規則とカラム操作コマンド一覧【コピペOK】