バックアップから戻そうと思ったのですが、その前に修復してみたらどうかな?と思ったのでそうしてみたら無事治りました。原因は不明です。データも消えてはいませんでした。MySQLのテーブルって破損することがあるんでしょうかという疑問だけ残りました。
以下、DB(MySQL)のテーブルを修復する方法です。
DBの作業をする前は、現状のDBのバックアップを取っておいたほうがよいと思います。
WordPressのプラグインを使う方法
Wordpressの管理画面にログインできるのなら、プラグインを使うのが簡単かと思います。使用するプラグイン
WP-DBManager・WordPress › WP-DBManager « WordPress Plugins
使い方
「Repair DB」を選択して、修復したいテーブルを選択して、「Repair」ボタンを押すと修復されます。
修復したいテーブルがわからない場合は、すべて選択で問題ないはずです。
phpMyAdminとやってることは同じだと思われます。
phpMyAdminを使う方法
修復したいテーブルのチェックボックスをチェックして、「テーブルを修復する」を選択すれば修復されます。
どのテーブルを修復したらよいかわからない場合は、すべてを選んでも問題ないかと思います。
実際に行われているのは、「REPAIR TABLE テーブル名」と同じだと思われます。
■参考
・WordPressのDBのwp_postsがクラッシュした時の修復方法 | コリス
SQLを使う方法
CHECK TABLE テーブル名テーブルの状態を確認する
破損していれば「crashed」と表示されるかと思います。
REPAIR TABLE テーブル名テーブルを修復する
MySQLコンソールか、phpMyAdminのSQLのところで実行させれば動作します。
※テーブル名のところは複数指定可能です。
REPAIR TABLE `wp_links` ,`wp_options` ,`wp_postmeta` ,`wp_posts`
■参考
・WordPress の投稿・固定ページが全て消えた!?:解決 | ゆめとちぼーとげんじつと
・WordPress : データベース破損から復旧しました | Hinemosu
・MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.2.3 CHECK TABLE 構文
・MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.2.6 REPAIR TABLE 構文
コマンドを使う方法
・チェック$ mysqlcheck -c --all-databases -uユーザー名 -pパスワード・修復
$ mysqlcheck -r --all-databases -uユーザー名 -pパスワード
※MYSQLが別サーバーの時は、 -h host_nameでそのホストを指定します。
■参考
・(MySQL) テーブルが壊れたかなと思ったら、mysqlcheck コマンドを実行しよう - jitsu102の日記
・MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.10 mysqlcheck — テーブル メンテナンスと修復プログラム
スポンサーリンク
コメントを残す