エンジニ屋.com(エンジニヤドットコム)

ITエンジニアによる開発・転職・資格取得記録などを書いてます!

【MySQL】起動時エラー絶対試してほしい対処法 Error: MySQL shutdown unexpectedly. This may be due to a blocked port, missing dependencies ....

何をやっても解決出来ない、諦めるしかないと思ったあなた、この方法がまだなら絶対試して下さい!

エラー画像

Mysqlエラー画像

筆者は3回添付画像のエラーに突然出会いました。 ググると同じエラーの対処方法がたくさん出てきますが、どれを試しても全く解決できませんでした。
例えば、backupのファイルを削除、php.iniのportを変更や文字コード部分をコメントアウトや、他にも色々と試しましたが、どの方法も解決出来ず。
完全に解決できないエラーなんだなと思い、1,2回目はやむおえなくXampを再度インストールし直し、DBのデータは全て作り直すという選択を取りました。幸いにもlocal環境にはテスト用のデータしか入っていないので、どうかにかはなりましたが、インストールの手間とテーブルを作成し直したりととにかく面倒で、出来ればやはりエラーの対処をして、使えるようにしたいと思いました。
そして、3回目に再度同じエラーに出会った時に、ようやく再インストールという選択を取らずともエラーの対処ができました。
その解決方法を紹介したいと思います。

解決方法

手順①

先ずXampディレクトリ内のmysql/dataディレクトリを念の為バックアップを取ります。 ディレクトリ名は何でも良いですが、data_oldとしてコピーを取ります。

手順②

mysqlディレクトリ内に新しくdataディレクトリを作成します。

手順③

mysqlディレクトリ内のbackupディレクトリ内の全ファイルをdataディレクトリにコピーします。

手順④

data_oldにあなた作成されたdatabase名のディレクトリがあるので、それをdataディレクトリに全てコピーしてください。 ここでmysqlとperformance_schemaとphpmyadminはコピーしないでください。

手順⑤

最後にdata_oldからibdata1をdataにコピーします。

これでXamppのコントローラパネルを再度開いて、startを押してください。 エラーが対処されていることを願います! 筆者は他はどれも対処できませんでしたが、唯一こちらの方法で直りました。もしエラーに見舞われて、まだ試していない対処方法であればぜひ試してください。

最後に

エラーの原因ですが、正直なところ明確な理由は分かりませんが、3回ともおそらくMysqlを起動したままパソコンを閉じてしまい、翌日にエラーが起きてました。 突然MySQLの接続が切られて、ファイル内でのバグかdataディレクトリ内のファイルの何かしらの破損によるエラーだと考えられるので、dataディレクトリをリセットする解決方法で直りました。
出来ればエラーを未然に防ぐべきなので、MySQLを使用しないときは、コントローラパネルでしっかりと起動をオフすることを心がけようと思います。
では以上となります。

Have a nice development day~~!