MySQL が予期せずシャットダウンする: XAMPP MySQL エラーを解決する方法
公開: 2024-03-21ランタイム エラーは、ライブ サーバー ユーザーとローカル サーバー ユーザーの両方でよく発生します。 「MySQL が予期せずシャットダウンしました」というメッセージは、XAMPP をローカル開発環境として使用しているときに多くの開発者、エンジニア、データベース管理者が遭遇するメッセージです。 この状況は迷惑かもしれませんが、珍しい問題ではありません。 良いニュースは、それは修正できるということです。 私たちはあなたをサポートします。
このガイドでは、「MySQL が予期せずシャットダウンしました」というメッセージが表示される理由と、この XAMPP MySQL エラーを解決する方法について説明します。
問題の根本から話し合うことから始めることが重要です。 まずは、XAMPP について詳しく学びましょう。
XAMPP の基本を理解する
XAMPP は、基本的に無料のオープンソースのクロスプラットフォーム Web サーバー ソリューション パッケージです。 Windows、macOS、Linux などのさまざまなオペレーティング システムで動作し、ローカル Web サーバー環境を作成および管理します。
XAMPP を使用すると、ユーザーは新しい機能を簡単にテストしたり、コードをデバッグしたり、さまざまな環境間でプロジェクトがスムーズに実行されることを確認したりできます。 XAMPP を使用すると、WordPress ウェブサイトを運用するために必要なソフトウェアをセットアップすることもできます。
このため、開発者、特に WordPress などの PHP ベースのアプリケーションを扱う開発者の間で人気の選択肢となっています。
XAMPP は次の略称です。
X: クロスプラットフォーム、
A: Apache HTTP Server は、人気のある Web サーバー ソフトウェアです。
M: MariaDB (元は MySQL)、Web サイトのデータを保存するためのデータベース管理システム。
P: PHP、動的 Web コンテンツの開発に使用されるスクリプト言語。
P: Perl、Web 開発やその他のタスクに使用できるプログラミング言語。
システムをよりよく理解した上で、このエラーの理由について説明しましょう。
XAMPP での MySQL シャットダウン エラーの概要
XAMPP エラー「MySQL が予期せずシャットダウンしました」は、開発環境内の MySQL サービスが動作を停止したことを示します。 MySQL を手動で停止する必要はありません。 これは、サーバーの再起動中など、さまざまな理由で実行できますが、予期しないシャットダウンは通常は予期しないものです。
MySQL が予期せずダウンすると、Web サイトはデータベースと通信できなくなります。 これは、すべての操作でデータベース接続に大きく依存する WordPress などのデータベース駆動型プラットフォームの場合、特に重要です。
XAMPP インターフェイス内では、この特定のエラーのトラブルシューティングを案内するメッセージが表示され、特にイベント ログで強調表示される場合があります。
XAMPP MySQL エラーのバリエーション
XAMPP で MySQL のシャットダウンが発生すると、次のいずれかのメッセージが画面に表示されます。
- MySQL が予期せずシャットダウンしました。
- エラー: MySQL が予期せずシャットダウンしました。
- MySQL サービスが起動していません。
- 「ポート 3306 が別のアプリケーションによって使用されている」などのポートの問題。
- ibdata ファイルの問題を示すエラー メッセージをログに記録します。
- MySQL プロセスが予期せず終了しました。
これらの各バリエーションは、原因に関する手がかりを提供し、トラブルシューティングの際に役立ちます。
XAMPP MySQL エラーの背後にある理由
この XAMPP MySQL エラー「MySQL が予期せずシャットダウンしました」が発生する場合は、次のような理由が考えられます。
ポートの競合: MySQL はデフォルトで 3306 を使用します。別のコンピュータ アプリケーションがこのポートを使用している場合、MySQL は起動せず、シャットダウンにつながります。
テーブルまたはデータ ファイルの破損:ディスクの問題、予期しないシャットダウン、またはその他の理由により、MySQL ファイルが破損した場合、MySQL を起動できなくなる可能性があります。
不適切な構成:バッファ サイズやメモリ割り当てが正しくないなど、my.ini ファイルの構成に誤りがあると、起動エラーが発生する可能性があります。
権限の問題: MySQL には、データ ファイルにアクセスして操作を実行するために特定の権限が必要です。これらの権限が正しくない場合、MySQL の操作が停止する可能性があります。
XAMPP エラー「MySQL が予期せずシャットダウンする」を修正する
待望のトラブルシューティングの部分に到達しました。 ここでは、XAMPP エラー「MySQL が予期せずシャットダウンしました」を修正する方法に関するステップバイステップのガイドを示します。
1. ポートの競合を確認する
Windows ユーザーの場合:
- コマンド プロンプトを開く: Win + R を押して、「cmd」と入力し、Enter キーを押します。
- netstat を使用します。 netstat -ano | と入力します。findstr 3306 → Enter を押します。 このコマンドは、MySQL のデフォルト ポートであるポート 3306 を使用するアプリケーションを検索します。
- 出力を解釈する:出力行が表示された場合、何かがポート 3306 を使用していることを示します。競合するアプリケーションを識別するために必要となるため、行の末尾にあるPID (プロセス ID)に注目してください。
macOS/Linux ユーザーの場合:
- ターミナルを開きます。
- lsof を使用します。 「lsof -i :3306」と入力し、Enter キーを押します。このコマンドは、ポート 3306 を使用して、開いているファイルと対応するアプリケーションを一覧表示します。
- 結果を読む:コマンドが情報を返した場合、ポート 3306 が使用中であることを意味します。指定されたアプリケーション名またはPID をメモします。
ポート 3306 を使用しているアプリケーションを特定したら、競合しているアプリケーションのポートまたは MySQL ポートを変更して問題を解決します。
オプション 1: 前にメモした PID またはアプリケーション名を使用して、競合するアプリケーションを見つけます。 アプリケーションの構成設定またはファイルを見つけます。 ポート番号設定 (3306 に設定する必要があります) を探し、それを別のポート番号に変更します。 変更を保存します。
オプション 2: XAMPP で MySQL のポートを変更する: XAMPP MySQL フォルダーにあるmy.iniファイルを開き、ポート (通常は port=3306) を指定する行を探し、それを空きポートに変更します。 この変更を加えた後、MySQL を再起動します。
2.破損したテーブルまたはデータファイルを修復する
XAMPP 内に破損した MySQL テーブルまたはデータ ファイルがあり、MySQL が予期せずシャットダウンする問題を引き起こす可能性があることがわかりました。 破損を特定する手順は次のとおりです。
- XAMPP インストール ディレクトリに移動し、mysql\data フォルダに移動します。これは、MySQL がデータベース ファイルを保存する場所です。
- .err ファイルを探します。これは、問題の原因に関する情報が含まれている可能性があるエラー ログ ファイルです。
- データベースにちなんで名付けられたファイルを確認してください。 通常とは異なるファイル サイズと変更日は破損の兆候である可能性があるため、注意してください。
破損したファイルを特定した場合。 それを解決する方法は次のとおりです。
MyISAM テーブルの場合
- まずデータをバックアップしてください。 これを行うには、XAMPP の phpMyAdmin を使用してデータベースをエクスポートするか、コマンドライン ツールに慣れている場合はmysqldumpコマンドを使用します。
- コマンド プロンプト (Windows) またはターミナル (macOS/Linux) を開きます。
Windows ユーザーの場合はC:\xampp\mysql\binのように、cd に続けてパスを入力して、XAMPP の MySQL ディレクトリ内の bin フォルダーに移動します。
コマンド ラインで、 「 myisamchk -r /path/to/your/table.MYI 」と入力し、 /path/to/your/table.MYIを修正する必要があるMyISAMテーブルへの実際のパスに置き換えてください。-r は「recover」を表し、テーブルを修復することを目的としています。
InnoDB テーブルの処理
InnoDB テーブルはその設計上少し扱いが難しく、myisamchk のような簡単なツールはありません。
- InnoDB テーブルに関するエラー メッセージについては、mysql\data ディレクトリ内の .err ファイルを確認してください。これらは、何が問題なのかについてのヒントを提供する可能性があります。
- 強制回復を試してください。 MySQL を強制的にリカバリ モードにします。my.ini (Windows)またはmy.cnf (その他の OS)ファイルを編集し、 [mysqld]セクションにinnodb_force_recovery = 1を追加して、MySQL を再起動します。
状況が悪いと思われる場合、最善の策はバックアップから復元することかもしれません。 破損したテーブルまたはデータベースを置き換えることができる最新のものがあれば幸いです。
3. 構成を確認して調整する
- テキスト エディタでmy.iniファイルを開きます。確認する重要な点には、innodb_buffer_pool_size (これを増やすとパフォーマンスが向上する可能性があります) とbasedirおよびdatadirで指定されたパスが含まれます。
- 構成ミスを見つけた場合、または設定が問題の原因である可能性があると思われる場合は、必要な調整を行ってください。 たとえば、 innodb_buffer_pool_sizeの設定がワークロードに対して低すぎる場合は、それに応じて値を増やしてください。変更を加える前に、必ず元のmy.iniファイルをバックアップしてください。
4. 正しい権限を設定する
MySQL または XAMPP には、特にセキュリティ ソフトウェアの更新または変更後、ディレクトリやファイルにアクセスするために必要な権限がない可能性があります。
- MySQL フォルダーと XAMPP フォルダーの権限を確認してください。
- XAMPP を実行しているユーザー アカウントに完全なアクセス権があることを確認してください。
- Windows では、XAMPPフォルダーを右クリックし、 [プロパティ]→ [セキュリティ]に移動し、必要に応じて調整する必要がある場合があります。
- macOS および Linux では、 chmodおよびchownコマンドを使用して正しい権限を設定します。
5. 再起動と監視
修正を実装した後、XAMPP コントロール パネルから XAMPP、特に MySQL サービスを再起動します。
新しい警告やエラーがないか、MySQL エラー ログ ファイルに注意してください。 このログは通常、データ ディレクトリに存在するか、 my.iniファイル内で指定されます。
まとめ
ローカルサーバー環境を使用している場合、「MySQL が予期せずシャットダウンしました」という XAMPP MySQL エラーに遭遇することは、知っておくべき一般的な問題です。 それを修正してサーバーをバックアップする方法を知ることも非常に重要です。 このガイドでは、XAMPP の基本、仕組み、問題について学び、問題が発生する理由、パニックにならずに段階的に解決する方法について説明しました。
ローカル XAMPP サーバーを使用している場合は、問題が再び発生した場合に備えて、このガイドを手の届くところに保管してください。 心配しないでください。トラブルシューティングのプロセス全体が詳しく説明されています。