
現在、集中型 MySQL サーバー (たとえば、192.168.0.10) に接続しているサーバーが 1 台あります。このサーバーは、この IP アドレス (たとえば、192.168.0.20) からのリモート接続をすでに許可しており、これまでの変更にもかかわらず、引き続き動作します。この 1 つの IP アドレスに対してです。
次のように、異なるホストから同じユーザー名とパスワードへのアクセスを許可しようとすると、
update db set host='192.168.0.%' where user='username';
update user set host='192.168.0.%' where user='username';
flush privileges;
すべて同じままです。192.168.0.20からは接続できますが、192.168.0.25からは接続できません。エラーメッセージが表示されます。
エラー 1130 (HY000): ホスト '192.168.0.25' はこの MySQL サーバーに接続できません
これがなぜ間違っているのかわかりません。すべてのドキュメントには、これが機能するはずだと書かれています。また、192.168.0.25 からの接続をファイアウォールで保護していません。MySQL を再起動しても効果はありません。このネットワーク上の他の IP は、以前は許可されていなかったものも含めて、問題なく MySQL に接続でき、192.168.0.25 から 192.168.0.10 に ping できます。
答え1
mysql.user
だけでなく、テーブルを変更する必要がありますmysql.db
。
正しい構文は次のとおりです。
RENAME USER 'user'@'192.168.0.10' TO 'user'@'192.168.0.%';
FLUSH PRIVILEGES;