2026年5月20日

2026年5月20日

MySQLサービスが停止している場合の対処法【データベース接続エラー】

はじめに

WordPressのデータベース接続エラーのうち、wp-config.phpの設定が正しいにも関わらずエラーが発生する場合、MySQLサービス自体が停止している可能性があります。共有ホスティングではサポートへの連絡が解決策になりますが、VPSや専用サーバーであれば自分でMySQLを再起動できます。

症状・確認

MySQLサービス停止の特徴:

  • wp-config.phpの接続情報は正しいのにエラーが発生する
  • phpMyAdminにもアクセスできない
  • 複数のWordPressサイトが同時に「データベース接続確立エラー」になった
  • サーバーの再起動後や急激なアクセス増加後に発生した

解決手順

ステップ1:phpMyAdminで接続確認

まずphpMyAdminにアクセスしてMySQLが動作しているか確認します。

  • cPanel:「phpMyAdmin」アイコンをクリック
  • エックスサーバー:サーバーパネル → 「phpmyadmin」

phpMyAdminにアクセスできない場合、MySQLサービスが停止している可能性が高いです。

ステップ2:共有ホスティングの場合

共有ホスティング(エックスサーバー・ロリポップ・ConoHa等)では自分でMySQLを再起動できません。

対処方法:

1. ホスティングのサポートに連絡して「MySQLサーバーが応答しない」旨を伝える

2. ステータスページを確認(多くのホスティングがシステム障害情報を公開)

3. サーバー障害であれば復旧を待つ

ステップ3:VPS・専用サーバーの場合(SSH接続)

SSHでサーバーに接続してMySQLの状態を確認・再起動します:

# MySQLの状態確認
sudo systemctl status mysql
# または MariaDB の場合
sudo systemctl status mariadb

# 停止していたら起動
sudo systemctl start mysql

# 自動起動を有効化(再起動後も自動で立ち上がるように)
sudo systemctl enable mysql

# 状態を再確認
sudo systemctl status mysql

ステップ4:MySQLのエラーログを確認

MySQLが起動しない場合はエラーログを確認します:

# Ubuntu/Debianの場合
sudo tail -100 /var/log/mysql/error.log

# CentOS/RHELの場合
sudo tail -100 /var/log/mysqld.log

# または journalctl で確認
sudo journalctl -u mysql -n 100

よくあるエラーと対処:

# ディスク容量不足
[ERROR] InnoDB: Write to file failed with error code 28
→ 不要なファイルを削除してディスク容量を確保

# メモリ不足
[ERROR] Could not allocate memory; errno=12
→ スワップ領域を追加またはサーバースペックアップ

# 権限エラー
[ERROR] Can't create/write to file
→ MySQLデータディレクトリのパーミッション確認

ステップ5:MySQLのメモリ設定を調整

メモリ不足でMySQLが落ちる場合、設定を調整します:

# /etc/mysql/mysql.conf.d/mysqld.cnf または /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 128M  # デフォルト128M(少ないサーバーなら64M)
key_buffer_size = 16M
max_connections = 100           # 接続数を制限

変更後:sudo systemctl restart mysql

ステップ6:WordPressのDB修復機能を使う

MySQLが起動してWordPressがDBに接続できるようになった後、テーブルが壊れている可能性がある場合は修復を行います:

// wp-config.phpに一時追加
define('WP_ALLOW_REPAIR', true);

https://example.com/wp-admin/maint/repair.phpにアクセスして「データベースを修復」を実行します。完了後はWP_ALLOW_REPAIRを削除します。

MySQLの自動監視・自動再起動の設定

VPSで本番運用している場合、MySQLが落ちたら自動で再起動する設定が推奨されます:

# /etc/systemd/system/mysql.service.d/restart.conf
[Service]
Restart=always
RestartSec=5

適用:sudo systemctl daemon-reload

まとめ

MySQLサービス停止によるDB接続エラーは、共有ホスティングならサポートへの連絡、VPS/専用サーバーならsudo systemctl start mysqlで再起動して対処します。ディスク容量不足やメモリ不足が根本原因の場合は設定の調整が必要です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ