特定のホスト名からのみMySQLデータベースに接続できるMySQLユーザーを作成しようとしています。
db_name。*のすべてを、「some_passwd」で識別される「user_name」@「appserver-lan.mydomain.com」に付与します。
mysql dbのユーザーテーブルを確認すると、ユーザーが正常に作成されたことがわかります。
mysqlを使用します。User = 'user_name'およびHost = 'appserver-lan.mydomain.com'のユーザーから*を選択します
または
「username」@「appserver-lan.mydomain.com」の付与を表示
指定したホスト名は、amazon-ec2名のエイリアスであり、AWS DNSサーバーによって解決されると、LANアドレスになります。
[root @ db_server〜]#ホストappserver-lan.mydomain.com
appserver-lan.mydomain.comは、ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.comのエイリアスです。ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.comのアドレスは10.xxxです。 .xxx.xxx
問題は、このappserver-lanからデータベースLAN IPに接続しようとすると、パスワードが正しいにもかかわらず、アクセス拒否エラーが発生することです。ここで奇妙なのは、エラーに表示されるホスト名が、ユーザーの作成時に指定したホスト名ではないことです。
エラー1045(28000):ユーザー 'user_name' @ ' appserver.mydomain.com 'のアクセスが拒否されました(パスワードを使用:YES)
だから、私の質問は次のとおりです。mysqlはどのようにクライアントのホスト名を決定するのですか?私はチェックし、「appserver.mydomain.com」も「appserver-lan.mydomain.com」も指し示していないので、逆DNSルックアップではそうではないと考えています。さらに、dbサーバーには、/ etc / hosts上のappserverに関連するエントリがありません。
要約すると、ホスト "%"またはLAN IPに特権を付与することはうまく機能するため、ホスト名解決の問題であると確信しています。
私が欠けているもののアイデアはありますか?
host -t PTR 10.1.2.3
か?