MySQLが起動しないときの原因まとめ
はじめに
XAMPPのMySQLを使用していて「Start」ボタンを押しても、すぐにMySQLが停止してしまう。
こんなことが起きたことはありませんか?
エラーが出るけど、何が原因か分からない。
この記事では、Windows環境でMySQLが起動しないときに確認すべきポイントを、順番に解説します。
確認するべきチェックリスト
1.パソコンを再起動する
意外ですが、これだけで直ることがあります。
MySQLのプロセスが残ってしまっている場合、パソコンを再起動することでリセットされます。
2.MySQLのプロセスが残っていないか確認する
MySQLのプロセスをパソコンの再起動でリセットできますが
パソコンの再起動以外の方法でもプロセスが残っていないか確認する方法があります。
◆確認方法
- Ctrl + Shift + Esc でタスクマネージャーを開く
- 「詳細」タブをクリック
- mysqld.exe があれば右クリック →「タスクの終了」
その後、もう一度XAMPPからMySQLを起動してみましょう。
3.XAMPPを「管理者として実行」する
Windowsでは、権限の問題でMySQLが起動しないことがあります。
◆確認方法
- XAMPPを一度終了する
- 「XAMPP Control Panel」を右クリック
- 「管理者として実行」をクリック
その状態でMySQLを起動してみてください。
Windowsでは、特定のポートやサービスを使用する場合に管理者権限が必要になることがあります。
つい先日までは問題なく使えていたのに、WindowsUpdateなどにより突然権限が足りなくなる場合があります。
今後は、XAMPPは常に「管理者として実行」するのがおすすめです。
4.ポート3306が使われていないか確認する
MySQLは通常「3306」というポート番号を使います。
他のアプリがこのポートを使っていると、MySQLが起動できません。
◆確認方法
1.コマンドプロンプトを開いて、次を入力する
netstat -ano | findstr 3306
何か表示された場合、そのポートは使用中です。
表示されたアプリを終了するか、XAMPPの設定でポート番号を変更しましょう。
5.強制終了によるInnoDBの破損を確認する
エラーログに次のような表示がある場合、InnoDBというファイルが破損している可能性があります。
InnoDB: Unable to lock ./ibdata1
InnoDB: corruption
InnoDBとは、MySQLがデータを管理している仕組みです。
MySQLを起動したままパソコンをシャットダウンしたときなどにファイルが壊れることがあります。
◆対処方法 (※作業前に必ず「xampp/mysql/data」フォルダをコピーしてバックアップしてください。)
- MySQLを停止する
- 「xampp/mysql/data」フォルダを開く
- 次のファイルを削除する
- ib_logfile0
- ib_logfile1
- もう一度MySQLを起動する
6.dataフォルダの破損を確認する
何度もエラーが出る場合、dataフォルダ自体が壊れている可能性があります。
◆対処方法
- MySQLを停止する
- 「xampp/mysql/data」フォルダを別の場所にコピー(バックアップ)
- 「xampp/mysql/backup」フォルダ内のファイルを「xampp/mysql/data」フォルダに上書きコピー
- MySQLを起動
※ この方法ではデータが消える可能性があります。大事なデータがある場合は慎重に行ってください。
まとめ
MySQLが起動しないときは、次の順番で確認しましょう。
- パソコンを再起動する
- MySQLのプロセスが残っていないか確認する
- XAMPPを「管理者として実行」する
- ポート3306が使われていないか確認する
- 強制終了によるInnoDBの破損を確認する
- dataフォルダの破損を確認する

