thumbnail 一問一答の一歩

【MySQL】phpmyadmin内のテーブルを開くと強制終了する原因と直し方

WordPressで本サイトを作成中にphpmyadmin内にあるのテ-ブルを開こうとするとMYSQLが強制終了するようになってしまった。私はWordpressのデータベースはXAMPを使用しているため、MySQLを起動させた瞬間に強制終了すること自体は時々あるが、それらの対する修理方法であるポート番号の変更やXAMPPファイルの修復、対処では上手くいかなかった。

MySQLを起動させた瞬間に強制終了してphpmyadminがそもそも開けない場合は、本ページの説明対象外であるので、以下のサイトを参照すると良い。

・phpmyAdmin強制終了に対する対処の概要

XAMPPでMySQLがStart出来ない場合の対処方法
プログラミングやサーバー構築を行っていると、思うように動かず エラーが発生 してしまうことがよくありますよね。 こういったエラーは、初心者の頃だけでなく、実際にエンジニアとして独り立ちして仕事をしていく中でも 日常茶飯事 です。 以下の記事でも書きましたが、 エラーの原因を調べたり、解決策を試したりする時間は、実際に物を作っている時間と同じくらい多かったりします。 よって、 エラーの原因をいち早く調べて解決できる能力 は、エンジニアにとって非常に重要なスキルなんです。 でも、実際どのように調べて解決していけばいいのか…? 最初のうちは、なかなか分からないことも多いと思います。 そこで今回は、 実際に起こったエラーを題材にして、僕が「 どんな思考、どんな手順で調査していくのか? 」ということを実演してみたいと思います。 プログラミングを学んでいる方のご参考になれば幸いです。 XAMPP Control Panelで、MySQLの「Start」ボタンを押してもMySQLが正常に起動しない(ボタンがすぐ「Start」に戻ってしまう) 問題が起きたとき、最初に見るべきは「 画面上に表示されているエラーメッセージ 」です。 赤字でこのように表示されています。 Error: MySQL shutdown unexpectedly.This may be due to a blocked port, missing dependencies, improper privileges, a chash, or a shutdown by another method.Press the Logs button to view error logs and check the Windows Event Viewer for more clues ちなみに、これを全文コピーしてGoogle翻訳で訳してみると…
https://blog.senseshare.jp/debugging01.html

・ポート番号を変更する修正方法

・XAMPPファイルのデータを修正する方法

思考錯誤をしながら調べてみると、恐らくテ-ブル内の情報構造や設計(つまり概念スキーマ)がおかしくなったと想像できる。

概念スキーマ設計ミスが発生すると、テーブル内の設計がおかしくなる。そのため、デ-タを編集しようにもテ-ブルを削除しようにもテ-ブルを開いた瞬間当然エラーで強制終了してしまう。つまり、データを開いて直すことが出来ない状況になってしまった。ここでは、その時の解決方法を以下の構成にで記載する。

  1. ワ-クブック内の不要なファイルを削除する
  2. バックアップされているテ-ブルを復元する

なお、この方法は、テーブルのバックアップをとっていることいることを前提とする。

(一つづつバックアップしていることがベストではあるが、全テ-ブルのバックアップからでもおそらくできる)

1.ワ-クブック内の不要なファイルを削除する。

xampのコントロールパネルのブラウザを開く

すると、多数の拡張子がfrmとibdのファイルが現れるはずである。詳細を調べきることはできなかったが、この2つのファイルに概念スキーマが含まれているらしい。

data\直したいデータベース名\壊れたテーブル名.ibdをデスクトップなり他の場所に移動する。

ibdファイルを移動

phpmyadminを開き、該当テーブルが開けるようになっているはずなので、「操作」を押してから、「テーブルを削除する」を選択する。

削除を洗濯

ブラウザに戻り、該当するテーブルのfrmファイルとibdファイルがともになくなっていることを確認する

2.バックアップされているテ-ブルを復元する

このままwrodpressを開いても、エラーになる可能性があるので、バックアップした表を復元する

インポートを選択し、ファイルを選択するから該当するsqlファイルを選択してインポートする

SQLファイルをインポートする

補足 データベースを入れようとしたら消したはずのDBが残っている場合

似たような概念スキーマ設計のミスで、データベースを入れようとしたら消したはずのDBが残っており消すことができない状況にもあたったのでその状況、及び対処についてのリンクを乗せる。

問題ページに戻る