mysqlはクライアントのホスト名をどのように決定しますか?
特定のホスト名からのみ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に特権を付与することはうまく機能するため、ホスト名解決の問題であると確信しています。 私が欠けているもののアイデアはありますか?