web-dev-qa-db-ja.com

XAMPP - MySQLが突然シャットダウンする

XAMPPを開いてMySQLの起動ボタンをクリックするとエラーが発生します。私はその直前に始めましたが、今はうまくいきません。

12:19:12 PM [mysql] MySQLアプリを起動しようとしています...
12:19:12 PM [mysql]ステータスの変更が検出されました:実行中
12:19:13 PM [mysql]ステータス変更が検出されました:停止しました
12:19:13 PM [mysql]エラー:MySQLが予期せずシャットダウンしました。
12:19:13 PM [mysql]これはポートがブロックされていること、依存関係がないことが原因である可能性があります。
12:19:13 PM [mysql]不適切な権限、クラッシュ、または別の方法によるシャットダウン
12:19:13 PM [mysql]ログボタンを押してエラーログを表示し、確認します。
12:19:13 PM [mysql]より多くの手がかりを得るためのWindowsイベントビューア
12:19:13 PM [mysql]さらに支援が必要な場合は、こちらをコピーして投稿してください。
12:19:13 PM [mysql]フォーラム全体のログウィンドウ

これがエラーログの内容です。

2013-08-02 12:19:12 4536 [注意]プラグイン「FEDERATED」は無効になっています。
2013-08-02 12:19:12 f64 InnoDB:警告:innodb_additional_mem_pool_sizeの使用は推奨されていません。このオプションは、オプションinnodb_use_sys_mallocおよびInnoDBの内部メモリアロケータとともに、将来のリリースで削除される可能性があります。
2013-08-02 12:19:12 4536 [注意] InnoDB:InnoDBのメモリヒープが無効になっています
2013-08-02 12:19:12 4536 [注意] InnoDB:ミューテックスとrw_locksはWindows連動機能を使用します
2013-08-02 12:19:12 4536 [注意] InnoDB:圧縮テーブルはzlib 1.2.3を使用します
2013-08-02 12:19:12 4536 [注意] InnoDB:CPUのcrc32命令を使用していません
2013-08-02 12:19:12 4536 [注意] InnoDB:バッファプールの初期化、サイズ= 16.0M
2013-08-02 12:19:12 4536 [注意] InnoDB:バッファプールの初期化が完了しました
2013-08-02 12:19:12 4536 [注意] InnoDB:サポートされている最高のファイル形式はBarracudaです。
2013-08-02 12:19:12 4536 [注意] InnoDB:ibdataファイルのログシーケンス番号0と0は、ib_logファイルのログシーケンス番号1616798と一致しません。
2013-08-02 12:19:12 4536 [注意] InnoDB:データベースは正常にシャットダウンされませんでした。
2013-08-02 12:19:12 4536 [注意] InnoDB:クラッシュリカバリを開始しています。
2013-08-02 12:19:12 4536 [注意] InnoDB:.ibdファイルから表領域情報を読み込んでいます...

最も重要なエラーメッセージはこちらです。

2013-08-02 12:19:12 4536 [エラー] InnoDB:
以前に開いた表領域を開こうとしました。
以前のテーブルスペースmysql/innodb_table_statsはファイルパスにスペースID:1を使用します:。\ mysql\innodb_table_stats .ibd.
ファイルパスにスペースID:1を使用しているテーブルスペースxat/paymentを開くことができません:。\payment.ibd

ログの残りの部分:

InnoDB:エラー:単一テーブルのテーブルスペースファイルを開けませんでした。\ xat\payment.ibd
InnoDB:テーブルが次のようになる可能性があるため、クラッシュリカバリを続行しません。
InnoDB:InnoDBログのログレコードを適用できない場合は破損します。
InnoDB:問題を解決してmysqldを起動するには:
InnoDB:1)ファイルに許可の問題があり、mysqldができない場合
InnoDB:ファイルを開き、権限を変更する必要があります。
InnoDB:2)テーブルが不要な場合、またはバックアップから復元できます。
InnoDB:その後、.ibdファイルを削除すると、InnoDBは通常の処理を行います。
InnoDB:リカバリをクラッシュさせ、そのテーブルを無視します。
InnoDB:3)ファイルシステムまたはディスクが壊れていて削除できない場合
InnoDB:.ibdファイル、my.cnfでinnodb_force_recovery> 0を設定できます。
InnoDB:そしてここでInnoDBにクラッシュ回復を継続させる。

これらのエラーの原因は何ですか。また、それらを修正する方法を教えてください。

53
Austin

ちょっと私はちょうどこれをした、それは働いた:

  1. 終了 Xamppサーバー
  2. C:\xampp\mysql\dataディレクトリに移動します
  3. 削除ibdata1ファイル
  4. 再起動 xamppサーバー

うまくいくはずです

154
Kratos
  1. mysql/data /に行きます。
  2. ランダムなファイルをすべて削除します(実際のデータベースフォルダを除く)。
  3. ApacheおよびMySQLを再起動します。

それを修正する必要があります。

21
Kerim

私のXampp MySQLは以下のようにちょうどうまくいった:

01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server
14
matinict

Mysql設定ファイル(my.ini)の[mysqld]セクションの下に次の行を追加し、その後Apache Webサーバーとmysqlサービスを再起動します。

[mysqld]
innodb_force_recovery = 4
14
aog

Mysqlを起動しようとしたとき、私は私のC:\xampp\mysql\data\mysql_error.logに同じ種類のエラーを得ました。

2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously 
  opened tablespace. Previous tablespace mysql/slave_relay_log_info uses 
  space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open  
  tablespace test_database/test_table which uses space ID: 3 at filepath:  
  .\test_database\test_table.ibd

エラーをよく読む必要があります。これはtest_databaseがmysqlの起動を妨げていることを示しています。

問題のあるデータベースを破壊することができます、これらのステップは問題を解決します:

  1. Mysqlとxamppが完全にシャットダウンされていることを確認してください。
  2. Mysqlがインストールされているディレクトリに移動します。私のものはC:\xampp\mysql\dataです。
  3. 作成したデータベースの名前のフォルダが表示されます。私のものはtest_databaseでした。
  4. 別の場所にC:\xampp\mysql\data\mysql\backuptablespaceという新しいフォルダーを作成します。
  5. 問題のあるデータベーステーブルフォルダをバックアップディレクトリにドラッグアンドドロップします(削除しないでください)。
  6. もう一度mysqlを起動してみてください。私にとっては、予想通り1秒で起動しました。

うまくいかない場合は、ファイルを元の場所に戻してください。そうすれば、元の場所に戻ります。

データベースを削除したくないし、バックアップもしたくない場合

もしあなたがテーブルデータのバックアップを持っていなくて、何かが壊れているためにmysqlが起動しないなら、あなたはそれをあなたがそれを壊したことを正確にするためにあなたの方法を推測しチェックするために除去のプロセスを使わなければならないでしょう。次の手順を実行します:

  1. C:\xampp\全体のクローンを作成し、安全な場所に保存して、始めの場所に戻ることができるようにします。
  2. Mysqlデータベースで破損した項目を見つけようとするには「バイナリ検索」アプローチを使用してください。ファイル、テーブル、データベース、ユーザー、その他のものがあります。
  3. データベース全体を削除し、それによってmysqlが起動できるかどうかを確認します。もしそうなら、データベースを戻して、いくつかのテーブルを削除してみてください。もしそうでなければ、それが始まるまで他の何かをヤンクアウトしてみてください。
  4. C:\xampp\mysql\data\mysqlからこれらのファイルを削除してみてください。db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. Mysqlを起動したら、追加したものが見つかるまで元に戻すことを試みます。これに対する1つのボーナスはあなたがmysqlがどうやって内部で動作するかを学ぶことです。

原子力オプション:

あなたがしたことがmysqlサーバーを台無しにしました。 XAMPPをアンインストールして再インストールすると、破損が元に戻ります。

10
Eric Leschinski

管理者としてXAMPPを実行していない場合、MySQLをシャットダウンすると頻繁に破損が発生するため、テーブルを修復または削除する必要があります。これを回避するには、XAMPPを管理者として実行するか、適切なコマンドでMySQLをシャットダウンするためのプロンプトメソッドを使用する必要があります。

Kratosが示唆するようにibdata1を削除することができますが、あなたのデータベースの他の部分がまだ/mysql/data/フォルダにあるので、これは壊れたデータベースであなたを残すことができます。私の場合、この残余データは私がWordPressを正常にインストールするのを妨げました。

ダメージを元に戻すためのよりきれいな方法はあなたの/mysql/data/フォルダ全体を元に戻すことです。 Windowsにはフォルダのバージョン管理機能が組み込まれています - /mysql/data/を右クリックしてRestore previous versionsを選択してください。その後、フォルダの現在の内容を削除して古いバージョンの内容に置き換えることができます。

補遺:XAMPPを管理者として実行することを忘れないようにするには、XAMPPショートカットを右クリックし、Properties、次にAdvancedに移動し、最後にRun as administratorにチェックマークを付けます。

9
Ryan Williams

私もこの問題に直面しており、これが私が解決した方法です。
1。 xamppがサブディレクトリの下にないことを確認してください。たとえば、C:\ xamppになります。
2。アプリケーションを実行する際には、管理者として実行する必要があります。

これがうまくいくことを願っています!

7
SITHU

私は同じ問題に直面していました、そして、上記の解決策のどれも私を助けませんでした。私はmysql設定ファイル(my.ini)に行き、[mysqld]の下のポート番号を変更しました。デフォルトのmysqlは3306ポートで動作します。

port= 3306

私はそれをに変えました、

port= 8111

その後Administratorとして実行します。最後にこれは私のために働いた。

3
Sksaif Uddin

Config-> Apache-> httpd.confを開きます。 Listenまたは80を検索し、listenポートを8081に更新してサーバーを再起動します。ああ、Skypeを持っているのならシャットダウンする。

2
Mihai

みんなMySqlサーバーがインストールされていないことを確認してください。 MySqlサーバーがプリインストールされていて、xamppコントロールパネルからmysqlを起動すると、いくつかのポートの競合が発生し、機能しません。x [xamppコントロールパネルからmysqlを起動する前にSO 。私は過去にmysqlサーバーをインストールしたので.netを使用します。アンインストールすると問題が解決しました。

2
Gvs Akhil

私はmysql/bin/my.iniでこのステートメントをコメントします

'innodb_additional_mem_pool_size=2M'

そしてそれは私の問題を解決します。あなたより

1
Boston Kenne

私にとっては、ポート80を占有していたSkypeをやめ、それから私がSkypeを実行していた時よりもApacheがポート80でうまく動いたので、今度は別のポートを選びました。

1
sudhanshu

これが私がしたことです。コンピューターを再起動しました。次にservices.mscを実行します。 MySQLサービスを停止してから再開しました。 Xamppサーバーを再起動しました。

1
kyzen

システム時刻が正しいことを確認してください。鉱山はどういうわけか2040年に設定されました、日付を修正することは問題を解決しました。

1
shakee93

クラッシュメッセージが "mysql.exeが動作を停止しました"である場合ただ実行管理者としてxampp-control.exeあなたの問題を即座に解決します。

0
Anwar Hossain

これは、MySQLデータベースがすでにポート3306で実行されていることを意味します。

XAMPPのコントロールパネルで、[設定]ボタンを押し、その後[my.ini]を押します。その後、Ctrl-Fを押して '3306'を検索してください。あなたが見つけたどんな '3306'もあなたが選んだ違うポート番号に置き換えてください(あなたは3307か3308を選ぶことができます - 私は2811を選びました、そしてそれはうまくいきました)。

「3306」が書き込まれている場所をすべて置き換えたら、ファイルを保存して、コントロールパネルの[Start]をもう一度押します。

0
Leo Chashchin

以下のファイルの名前をmysql/dataから変更します。ib_logfile0 ib_logfile1 ibdata1

my.cnf innodb_buffer_pool_sizeを200Mに、ram innodb_log_buffer_sizeを32Mに

Apacheサーバーを再起動します

あなたに役立つことを願っています

0
insoftservice

mariaDBを使用している場合は、これを試すことができます。

  1. Mysql/data /に行きます。
  2. aria_log_controlの名前をaria_log_control_oldに変更
  3. "Mysql"を再起動してください。
0
Leo

上記のいずれかの方法でうまくいかない場合は、Xamppディレクトリの背面に移動してXamppを再インストールしてください。それはきっとうまくいきます!

0

これを行うには、Modules Servicesの下のxオプションをクリックしてMYSQLサービスをインストールする必要があります。それからサービスを開始してください。どうぞ。

0
Fahad Naeem

上記の解決策は私のために働きませんでした。それから私は以下でした:

このディレクトリ内のフォルダを除いて、C:\ xampp\mysql\data \ディレクトリ内のすべてのファイルを削除しました。それは完全にうまくいきましたが、私の以前のデータベースは今はうまくいきません。あなたがそれがphpmyadminの中のあなたの前のデータベースをすべて削除することになるのを気にしないのであれば、上記をしてください。

0
Aammad Ullah

私のmysqlデータとhtdocsをdropboxに同期させた私の場合は、mysql/dataフォルダとサブフォルダ内の衝突したファイルを削除する必要がありました。衝突したファイルはその名前で識別でき、dropboxはそれを教えてくれます。それは私のために問題を解決しました。

0
maurisrx