특정 호스트 이름에서만 MySQL 데이터베이스에 연결할 수있는 MySQL 사용자를 만들려고합니다.
'some_passwd'로 식별 된 'user_name'@'appserver-lan.mydomain.com'에 db_name. *의 모든 권한 부여
mysql db에서 user 테이블을 확인하면 사용자가 성공적으로 생성되었음을 알 수 있습니다.
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 '에 대한 액세스가 거부되었습니다 (비밀번호 사용 : 예).
그래서 내 질문은 : mysql은 어떻게 클라이언트 호스트 이름을 결정합니까? 나는 역 DNS 검색으로 그렇게하지 않는다고 믿습니다. 왜냐하면 "appserver.mydomain.com"이나 "appserver-lan.mydomain.com"을 가리 키지 않기 때문입니다. 또한 db 서버에는 / etc / hosts의 appserver와 관련된 항목이 없습니다.
요약하면 호스트 "%"또는 LAN IP에 대한 권한을 부여하면 제대로 작동하므로 호스트 이름 확인 문제 일 것입니다.
내가 잃어버린 것에 대한 아이디어가 있습니까?
host -t PTR 10.1.2.3
?