データベース破損でサイトが真っ白になった時の緊急対処法を、20年の制作実績を持つ横浜のWeb制作会社が実案件ベースで解説します。
こんな緊急事態に直面していませんか?
- サイトが突然真っ白になって何も表示されない
- WordPress管理画面にログインできない
- 「データベース接続エラー」というメッセージが表示される
- サーバーエラーログに「Table doesn't exist」などのエラーが出ている
このような症状が現れた場合、WordPressデータベースが破損している可能性があります。20年以上の制作実績を持つ当社でも、年に数回はこのような緊急対応を行っています。
実際にあった緊急事態:製造業A社のケース
つい先月、横浜の製造業A社から緊急連絡がありました。「朝からサイトが見れなくなって、お客様からの問い合わせができない状態です」という内容でした。
調査の結果、サーバーの突然の電源断により、WordPressのデータベーステーブルが破損していることが判明。幸い、適切な手順で復旧作業を行い、2時間で完全復旧することができました。
緊急復旧の手順
1. まずは現状確認
慌てずに、まずは破損の程度を確認しましょう。
# MySQLにログイン
mysql -u ユーザー名 -p データベース名
# テーブル一覧を確認
SHOW TABLES;
# 各テーブルの状態をチェック
CHECK TABLE wp_posts, wp_options, wp_users;
2. バックアップの確認
復旧作業前に、現在の状態をバックアップしておくことが重要です。
# 現在の状態をダンプ
mysqldump -u ユーザー名 -p データベース名 > backup_broken_$(date +%Y%m%d).sql
3. テーブル修復の実行
軽度の破損の場合:
-- 破損したテーブルの修復
REPAIR TABLE wp_posts;
REPAIR TABLE wp_options;
REPAIR TABLE wp_users;
-- MyISAMの場合はこちらも試す
REPAIR TABLE wp_posts EXTENDED;
重度の破損の場合:
# MySQLを停止
sudo systemctl stop mysql
# myisamchkコマンドで修復
myisamchk -r /var/lib/mysql/データベース名/*.MYI
# MySQL再起動
sudo systemctl start mysql
4. WordPress設定ファイルの確認
// wp-config.phpの確認
define('DB_NAME', 'データベース名');
define('DB_USER', 'ユーザー名');
define('DB_PASSWORD', 'パスワード');
define('DB_HOST', 'localhost');
// デバッグモードを一時的に有効化
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
よくある失敗パターンと対処法
失敗例1:修復作業中にさらに破損が拡大
当社の経験では、焦って複数の修復コマンドを同時実行してしまい、かえって状況を悪化させるケースがよくあります。
正しい対処法:
- 必ず一つずつのテーブルから修復作業を行う
- 各ステップ後に必ず動作確認を行う
失敗例2:バックアップを取らずに作業開始
「早く復旧したい」という気持ちから、バックアップを取らずに修復作業を始めてしまうケースです。
正しい対処法:
- どんなに緊急でも、現状のバックアップは必須
- 「悪い状態でも、現在のデータは貴重な資産」という認識を持つ
復旧後の動作確認ポイント
修復作業完了後は、以下の項目を必ず確認してください:
- フロントエンドの表示確認:ページが正常に表示されるか
- 管理画面へのログイン:ダッシュボードにアクセスできるか
- 投稿・固定ページの確認:コンテンツが正常に表示されるか
- プラグインの動作:必要な機能が正常に動作するか
- お問い合わせフォーム:フォーム送信が正常に機能するか
予防策:二度と同じ問題を起こさないために
定期的な自動バックアップの設定
#!/bin/bash
# 毎日午前3時に実行するcronスクリプト
mysqldump -u ユーザー名 -p'パスワード' データベース名 > /backup/db_$(date +%Y%m%d).sql
# 7日以上古いバックアップは削除
find /backup -name "db_*.sql" -mtime +7 -delete
サーバー環境の見直し
前述のA社では、復旧作業後にUPS(無停電電源装置)の導入をご提案し、実装いたしました。結果として、その後1年間、同様のトラブルは一度も発生していません。
まとめ:緊急時こそ冷静な対応を
データベース破損は確かに深刻な問題ですが、適切な手順を踏めば必ず復旧できます。当社では、これまで100%の成功率で復旧作業を完了しています。
今すぐ実行すべきアクション:
- 現在のサイトの緊急バックアップを取得
- 定期バックアップの仕組みを構築
- 緊急時の連絡先を決めておく
もし現在データベース破損でお困りの場合、または予防策の実装をご検討の場合は、お気軽にご相談ください。緊急時は24時間以内の対応を心がけています。