MySQL Connection refused エラーの対処法
症状 MySQLに接続しようとすると ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111 "Connection refused") が表示される 結論:まずこれを確認 MySQLプロセスが起動しているか確認する MySQLが正しいポート(デフォルト3306)でリッスンしているか確認する bind-addressの設定がアクセス元を許可しているか確認する トラブルシューティングフロー flowchart TD A[Connection refused発生] --> B{MySQLプロセス起動中?} B -->|No| C[MySQLを起動する] B -->|Yes| D{ポート3306でリッスン?} D -->|No| E[my.cnfのport設定を確認] D -->|Yes| F{bind-address設定は?} F -->|127.0.0.1のみ| G[bind-addressを変更] F -->|0.0.0.0| H{ファイアウォール確認} H -->|ブロック| I[ファイアウォール設定変更] H -->|許可済み| J[MySQLユーザー権限確認] C --> K[起動ログを確認] K -->|エラーあり| L[エラー内容に応じた対処] K -->|正常起動| D よくある原因 MySQLプロセスが停止している - サーバー再起動後に自動起動していない bind-addressが127.0.0.1に設定されている - ローカル以外からの接続を受け付けない ポート番号が異なる - 設定変更やバージョン違いで3306以外を使用 ファイアウォールでブロックされている - iptables/firewalld/ufw等で3306が閉じている ソケットファイルの問題 - /var/lib/mysql/mysql.sock が存在しない・権限不正 MySQLが起動途中でクラッシュしている - ディスク容量不足やメモリ不足 SELinuxによるブロック - SELinuxが有効な環境でポリシー違反 確認手順 ステップ1: MySQLプロセスを確認する # systemdの場合 systemctl status mysql # または systemctl status mysqld # プロセス直接確認 ps aux | grep mysql 🔍 チェックポイント: active (running) と表示されれば起動中 ...