11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【xammp】mysqlが起動しない時の対処

Last updated at Posted at 2021-08-03

概要

XAMPPのコントロールパネルからMySqlをStartをしようとすると以下のようなエラーが出ました。
これはApacheやMySQLが起動に失敗した場合に表示されるテンプレのエラーメッセージでここだけではエラーの原因は特定できません。
詳しくはエラーのログから確認するのですがエラーの数が多すぎたので割愛します。
当記事では復旧までの手順のみとします。

12:36:20 [mysql] Error: MySQL shutdown unexpectedly.
12:36:20 [mysql] This may be due to a blocked port, missing dependencies,
12:36:20 [mysql] improper privileges, a crash, or a shutdown by another method.
12:36:20 [mysql] Press the Logs button to view error logs and check
12:36:20 [mysql] the Windows Event Viewer for more clues
12:36:20 [mysql] If you need more help, copy and post this
12:36:20 [mysql] entire log window on the forums

復旧までの手順

1.MySqlフォルダのバックアップ:重要

C:\xampp\mysqlをコピペでバックアップします。
デスクトップでもC:\xamppでもどこでもいいのでエラーの状態のフォルダをバックアップします。
これを忘れると復旧できない可能性があるのでとても重要です。

2.他で起動しているMySQLのタスクをキルする

管理者権限で実行している場合はstartできないのでQuitで終了すれば起動できる可能性があります。

3.port番号を変える

ポートが重複していると起動できないので確認します。
コマンドプロントでもxammpコンパネでも好きな方法で確認します。
個人的にはcammpコンパネのNetstartボタンからが見やすくて好きです。
重複があればC:\xampp\mysql\data\my.iniでポートを編集すれば起動できる可能性があります。

4.破損ファイルの退避

C:\xampp\mysql\data内にある以下のファイルを削除します。
・ibdata1
・ib_logfileで始まる全ファイル

MySQLが強制終了した場合などにこれらのファイルが破損ファイルとして残る場合があり、退避することでMySQLが正常に起動するケースがあります。

5.バックアップからの復旧

C:\xampp\mysql\backupからの復旧で、今回の事案を解消した方法です。
少し長くなるので次章で記述します。

バックアップからの復旧

前章の1と2を試して駄目だったのでバックアップファイルから復旧しました。
主な原因は正しくxammpを終了していないことです。
xammpコンパネでMySQLのstopせずにPCをシャットダウンすると起きることがあるみたいです。

復旧手順1.dataフォルダ内の初期テーブルを削除

C:\xampp\mysql\dataから以下のフォルダを削除します。

・mysql
・performance_schema
・phpmyadmin
・test

復旧手順2.バックアップフォルダ内のファルダをコピペ

にある以下のフォルダをC:\xampp\mysql\dataにコピペします。
手順1と削除したものと同じフォルダです。、
C:\xampp\mysql\backupはxammp様が定期的に作成してくれています。

・mysql
・performance_schema
・phpmyadmin
・test

復旧手順3.MySqlのstart

これでstartできればほぼ完了です。
ただし、前章の手順4を実行している場合はMySqlを起動できてもテーブルにアクセスできないはずです。
原因はデータベースの情報を保存しているibdata1を一度削除しているからです。

補足.前章の手順4を実行している場合

前章の手順1でバックアップしたフォルダ内のibdata1C:\xampp\mysql\data内にコピペします。

まとめ

人間なのでミスは前提で、エラーやバグは仕方ないことと考えています。
大事なの前の状態に復旧することで、エラーやバグが発生した状態を保存することの重要さを改めて感じました。

参考

xamppのMySQLがshutdownエラーで起動できない、タスクキルでもport変えても直らないのをようやく解決できた話。
XAMPPでMySQLがStart出来ない場合の対処方法

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?