2026年5月29日
2026年5月29日
WordPressのTCPポート3306(MySQL)接続エラー解決
はじめに
WordPressサイトの管理者として、MySQLデータベースとの接続が突然途切れた際には非常に困惑するでしょう。特に「Error establishing a database connection」や「Connection timed out」といったメッセージを表示したまま動作しない場合、その原因はTCPポート3306経由でのMySQLサーバーへのアクセスが問題であることが多いです。
本記事では、この接続エラーの主な原因と対処法について詳しく説明します。また、WordPressプラグインや設定変更を通じて接続を改善するための具体的な手順も紹介します。
症状・背景
このテーマが必要になる主な場面:
- MySQLサーバーが停止している場合
- ファイアウォール設定によりポート3306へのアクセスがブロックされている場合
- WordPressデータベース接続情報(DB名、ユーザー名など)に誤りがある場合
- サーバーコンフィグレーションが不適切な場合(MySQLのbind-address設定など)
手順・設定方法
ステップ1: MySQLサーバー状態確認
# MySQLサーバーが正常に動作しているか確認します。
systemctl status mysql
# サーバーが停止している場合は起動します。
sudo systemctl start mysql
ステップ2: ファイアウォール設定の確認と変更
# 現在のファイアウォールルールを表示します。
sudo iptables -L
# TCPポート3306が開かれていることを確認します。必要であればルールを作成または編集します。
sudo ufw allow 3306/tcp
# ルールを適用後、再度iptablesコマンドで状態を確認します。
sudo iptables -L
ステップ3: WordPressデータベース接続情報の修正
# wp-config.phpファイルを開き、データベース接続情報を確認・修正します。
nano /path/to/wordpress/wp-config.php
# 以下の設定が正しい値に変更されていることを確認します。
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost'); # 必要に応じてIPアドレスやホスト名を指定
# ファイルの保存とサーバーへの再アップロードを行います。
ステップ4: MySQLのbind-address設定確認
# MySQLのmy.cnfファイルを開き、bind-addressが適切なIPアドレスに設定されているか確認します。
nano /etc/mysql/my.cnf
# 必要であれば、bind-addressをサーバーの外部からのアクセス可能なIPアドレスに変更します。
bind-address = 0.0.0.0 # サーバーがインターネットから直接アクセス可能であることを確認
# MySQLサービスを再起動して変更を有効化します。
sudo systemctl restart mysql
注意事項
- データベース接続情報(DB_USER、DB_PASSWORDなど)は秘密保持のために厳重に管理すること。公開や共有は避けること。
- ファイアウォール設定の変更はネットワークセキュリティに重大な影響を与える可能性があるため慎重に行うべき。
- MySQLデータベースサーバーの設定を変更する際には、バックアップを作成しておくことが推奨される。
- サーバーのパフォーマンスと可用性のために定期的なシステムメンテナンスが重要である。
まとめ
1. MySQLサーバー起動: MySQLデータベースサーバーが正しく動作していることを確認する。
2. ファイアウォール設定: ポート3306経由でのアクセスを許可するために、必要に応じてファイアウォールルールを編集する。
3. 接続情報の修正: WordPressとMySQLデータベース間の接続情報を確認し、誤りがないことを確認する。
4. bind-address設定: MySQLが外部からのアクセスを受け付けるように、サーバーのIPアドレスにbind-addressを適切に設定する。
5. 保守的管理: 接続情報やネットワーク設定の変更は慎重に行い、バックアップを取ること。
関連記事: