MySQLのエラー『エラー1130: Host Not Allowed to Connect』の解決方法
MySQLで「エラー1130: Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server」が発生する場合は、接続元ホストに対してMySQLのアクセス権限が付与されていないことが原因。主にリモート接続時に起こる。
1. エラーの具体的な内容
ERROR 1130 (HY000): Host '192.168.1.100' is not allowed to connect to this MySQL server
接続元ホスト(例:192.168.1.100)からMySQLサーバーへの接続が拒否されている状態。
2. 発生条件
- MySQLのユーザーにホスト制限がかかっている
- `bind-address`の設定により、リモートから接続できない
- ファイアウォールやネットワーク制限により通信が遮断されている
- MySQLサーバーが特定ホストからの接続を許可していない
3. ユーザーのホスト設定を確認する
SELECT Host, User FROM mysql.user WHERE User = 'example_user';ホストが`localhost`や`127.0.0.1`になっていると、リモート接続できない。
4. ホストをワイルドカードで許可する
ユーザーのホストを`%`に設定すると任意のホストからの接続が可能になる。
CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'example_user'@'%';
FLUSH PRIVILEGES;既存ユーザーのホスト設定を変更したい場合:
UPDATE mysql.user SET Host = '%' WHERE User = 'example_user';
FLUSH PRIVILEGES;5. MySQL設定ファイルのbind-addressを確認
デフォルトではローカルホストにバインドされていることが多い。
# /etc/mysql/my.cnf または /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.00.0.0.0に設定することで、全てのIPアドレスからの接続を許可する。
6. ファイアウォールの設定を確認
MySQLのデフォルトポート(3306)がブロックされていると接続できない。
sudo ufw allow 3306CentOSなどfirewalld使用環境では以下を使用:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload7. ネットワーク接続を確認する
pingやtelnetでポートの開放状況を確認:
ping mysql_server_ip
telnet mysql_server_ip 3306接続できない場合は、ルーターやクラウド環境のセキュリティグループも確認。
8. 接続先ホスト名がDNSで解決されていない
ホスト名ではなくIPアドレスでの接続を試みる:
mysql -u example_user -p -h 192.168.1.1009. Docker環境での接続制限
MySQLコンテナに接続する際、`docker-compose.yml`の設定に注意:
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_HOST=%ホスト制限に`%`を指定していないと接続できない。
10. MySQLログを確認して原因を特定する
詳細な原因を調査するにはログを確認する。
tail -f /var/log/mysql/error.log11. クラウド環境(AWS, GCP等)のセキュリティ設定
パブリックIP経由でアクセスする場合は、セキュリティグループやファイアウォールで3306ポートの許可が必要。
AWS例:
- セキュリティグループでインバウンドルールに3306を追加
- アクセス元IPを制限する(0.0.0.0/0ではなく、信頼できるIPに限定)
12. mysql_native_password認証の使用
MySQL 8.0では認証方式の違いで接続できないこともある。以下で変更可能。
ALTER USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';MySQLクライアントやドライバのバージョンが古い場合に有効。
-
前の記事
Error: Failed to lookup view ‘X’ in views directory の解決方法 2025.06.24
-
次の記事
kotlin Listの要素をランダムに取得する 2025.06.25
コメントを書く