【解決】XAMPPで「MySQLが予期せずシャットダウンしました」エラーが出た時の直し方
XAMPPのコントロールパネルからMySQLサーバーを起動しようとした際に、「エラー:MySQLが予期せずシャットダウンしました(Error: MySQL shutdown unexpectedly)」というメッセージが表示されて困っているユーザーは少なくありません。特に、XAMPPを再インストールした後にこの問題が発生するケースが多く報告されています。
このエラーの主な原因は、MySQLのファイルが破損していることです。その場合、mysqlディレクトリ内にあるbackupフォルダを利用することで復旧できます。本記事では、このエラーを解消するための手順をわかりやすく解説しますので、データ消失を心配する必要はありません。
エラーの原因と注意点
XAMPPはWebサーバー環境を手軽に構築できる便利なツールですが、「localhostに接続できない」など、いくつかのトラブルが発生することがあります。このMySQLの起動エラーに遭遇すると、多くの方は「データベースが壊れてしまった」と考えてしまいがちです。しかし実際には、データが失われることはほとんどなく、適切な手順を踏めば簡単に回避できる問題です。
なお、ネット上では「mysqlディレクトリ内のibdata1ファイルを削除すれば解決する」という情報も見られます。ibdata1は、InnoDBストレージエンジンのシステムテーブルスペースを格納する重要なファイルです。削除によって一時的に問題が解消されることもありますが、データベース全体が使用不能になるリスクが非常に高いため、推奨されません。データベースの中身を気にしないのであれば別ですが、基本的には避けるべき方法です。
本記事で紹介する解決策は、backupフォルダの内容を使ってdataフォルダを置き換えるという安全な手法です。また、MySQLサービスがすでにバックグラウンドで起動していることが原因の場合もあるため、その場合はサービスを停止してから再度試すことで問題が解決することがあります。
方法1:backupフォルダを使ってdataフォルダを復元する
このエラーが発生した場合は、mysqlディレクトリ内のbackupフォルダに保存されているファイルを使用します。このフォルダはXAMPPに標準で含まれているため、追加のダウンロードは不要です。作業を始める前に、万が一に備えてデータベースのバックアップを作成しておくことをおすすめします。
具体的には、dataフォルダの中身をbackupフォルダの内容で置き換えます。この手順でもデータは失われないので安心してください。以下の手順に従って進めましょう。
- まず、XAMPPを完全に終了します。
- XAMPPがインストールされているフォルダを開きます。デフォルトでは「C:\xampp」にあります。
- xamppフォルダ内にあるmysqlフォルダを開きます。
- mysqlフォルダ内のdataフォルダを見つけ、名前を「data_old」に変更します。
- 次に、mysqlディレクトリ内で右クリックし、「新規作成 > フォルダ」から新しいフォルダを作成し、名前を「data」にします。
- backupフォルダを開き、中身をすべてコピーして、新しく作成したdataフォルダに貼り付けます。
- 続いて、data_oldフォルダに戻り、自分のデータベースのフォルダだけを新しいdataフォルダにコピーします。
注意: data_oldフォルダ内の「mysql」「performance_schema」「phpmyadmin」の各フォルダはコピーしないでください。
- data_oldフォルダからibdata1ファイルをコピーし、新しいdataフォルダ内の同名ファイルと置き換えます。
- すべて完了したら、XAMPPを管理者として実行します。コントロールパネルが開いたら、MySQLサーバーを起動して、問題が解消されているか確認しましょう。
方法2:シェルからMySQLデータベースを修復する
上記の方法に加えて、XAMPPコントロールパネル内のShell機能を使ってMySQLサーバーを修復する方法もあります。コマンドライン操作が得意な方にはこちらがおすすめです。まずシェルでMySQLサーバーを起動し、別のシェルウィンドウでデータベースの修復を実行します。以下の手順で行ってください。
- XAMPPコントロールパネルを開きます。
- コントロールパネルのShellボタンをクリックして、シェルを起動します。
- シェルが開いたら、以下のコマンドを入力してMySQLを起動します。
mysqld --console --skip-grant-tables --skip-external-locking
- その後、コントロールパネルからもう1つ新しいシェルウィンドウを開きます。
- 新しいシェルウィンドウで、以下のコマンドを入力してデータベースを修復します。
mysqlcheck -r --databases mysql --use-frm
- 完了したら、最初のシェルウィンドウでMySQLを停止し、両方のシェルウィンドウを閉じます。
- 最後にMySQLを再起動して、問題が残っていないか確認します。
方法3:MySQLサービスを停止する
実は、この問題はWindowsのMySQLサービスが原因で発生することもあります。XAMPPコントロールパネルからMySQLサーバーを起動しようとした時点で、すでにMySQLサービスが動作していると競合が起こるのです。この場合は、Windowsのサービス画面からMySQLサービスを停止すればOKです。システム上のサービスは不具合を起こすとさまざまな問題の原因になることがありますが、心配はいりません。以下の手順で停止しましょう。
- キーボードのWindowsキー + Rを押して、「ファイル名を指定して実行」ダイアログを開きます。
- ダイアログに「services.msc」と入力し、Enterキーを押します。
- 開いたサービス画面には、システム上のすべてのサービスが一覧表示されます。
- 一覧からMySQLサービスを見つけて右クリックし、ドロップダウンメニューから「停止」を選択します。
- または、MySQLサービスを選択した状態で、左側の「停止」ボタンをクリックしても同じです。
- サービスが完全に停止するのを待ち、その後XAMPPコントロールパネルから手動でMySQLサーバーを起動して、問題が解消されたか確認します。
方法4:クライアントとサーバーのポート番号を変更する
場合によっては、MySQLサーバーが使用しようとしているポートが原因となることもあります。これは、MySQLが使おうとするポートが他のサービスによってすでに占有されている場合や、システム上でポートがブロックされている場合に起こります。この問題を解決するには、my.iniファイルを編集してクライアント側とサーバー側のポート番号を変更する必要があります。以下の手順で進めてください。
- エクスプローラーを開き、xamppのインストールディレクトリに移動します。
- xamppフォルダ内から「mysql > bin」へと進みます。
- binフォルダ内にあるmy.iniファイルをメモ帳で開きます。ファイルを右クリックして「プログラムから開く > メモ帳」を選択すればOKです。
- my.iniファイルが開いたら、下の画像のようにclientとserverのポート設定箇所を探し、番号を変更します。
- ファイルを保存して、XAMPPを再度開きます。
- 最後にMySQLサーバーを起動し、エラーが解消されているかどうかを確認しましょう。
まとめ
「MySQLが予期せずシャットダウンしました」エラーは、ファイル破損やサービスの競合、ポートの重複などが原因で発生します。ibdata1ファイルの削除はデータ損失のリスクがあるため避け、まずはbackupフォルダを使った復元を試みるのが安全です。それでも解決しない場合は、シェルからの修復、サービスの停止、ポート番号の変更を順番に試してみてください。いずれの方法でも、作業前のバックアップ取得を忘れずに行うことが大切です。
-
Windows 11でフォルダのアクセス拒否エラーを解決する6つの方法
Windows 11でフォルダにアクセスしようとした際、「アクセスが拒否されました」というエラーが表示されて困っていませんか?フォルダやファイルの中身を開けず、画面に警告が出てしまうケースは少なくありません。この記事では、Windows 11で発生するフォルダのアクセス拒否エラーを解決するための実用的な対処法を6つご紹介します。 アクセス拒否エラーが発生する主な原因 Windowsが特定のフォルダやファイルへのアクセス権限がないと通知してくる場合、主な原因として以下のようなものが考えられます。 管理者権限の制限や不適切な設定 フォルダのアクセス許可設定の誤り Googleドライブとの同期に
-
Windows 11で共有フォルダにアクセスできないときの対処法を徹底解説
Windows 11で共有フォルダにアクセスできずにお困りではありませんか?実はこの問題はよく発生するトラブルの一つですが、心配はいりません。PCの設定を少し変更するだけで、共有フォルダへのアクセスを簡単に復旧できます。まず、共有フォルダについて簡単にご説明します。共有フォルダとは、同一ネットワーク上で複数のデバイスからファイルリソースへアクセスできるようにする仕組みです。共有フォルダを作成すると、その中に含まれるすべてのファイルやサブフォルダがネットワーク経由で共有されます。そのため、共有フォルダにアクセスできない状態は業務の流れを妨げ、大きなストレスになることもあります。共有フォルダが動作