私はこの奇妙な問題を抱えています。2 つの NIC を備えた ubuntu 12.04 サーバーがあります。一方は 172.30.1.1 で公開され、もう一方は 192.168.1.1 で非公開です。MySQL サーバーを実行しています。では/etc/mysql/my.conf
、 がありbind-address = 0.0.0.0
ます。
テーブルが作成され、権限が付与されます。
CREATE DATABASE db;
GRANT ALL ON db.* TO 'user0'@'%' IDENTIFIED BY 'password';
GRANT ALL ON db.* TO 'user0'@'localhost' IDENTIFIED BY 'password';
ホスト名は「myhost」で、/etc/hostname
. /etc/hosts
もっている
127.0.0.1 localhost
127.0.1.1 myhost
192.168.1.1 myhost
172.30.1.1で接続すると問題ありません。しかし、192.168.1.1 を使用すると、アクセスが拒否されます。
mysql -h 192.168.1.1 -uuser0 -ppassword
ERROR 1045 (28000): Access denied for user 'user0'@'myhost' (using password: YES)
このようなユーザーテーブルがあります。
mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| user0 | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| debian-sys-maint | localhost |
| user0 | localhost |
| root | localhost |
| | myhost |
| root | myhost |
+------------------+-----------+
違いは、ファイルに192.168.1.1 myhost
行があることです。/etc/hosts
172.30.1.1 ではありません。その行を削除するか、IP の後のホスト名を変更すると、正常に動作します。に追加172.30.1.1 myhost
すると/etc/hosts
、172 IP で接続できなくなります。これをどう説明する?