>데이터 베이스 >MySQL 튜토리얼 >'%' 호스트 항목이 있어도 '호스트 'xxx.xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다.'라는 메시지가 나타나는 이유는 무엇입니까?

'%' 호스트 항목이 있어도 '호스트 'xxx.xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다.'라는 메시지가 나타나는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-20 18:06:11703검색

Why Do I Get

원격 MySQL 연결 오류: "호스트가 허용되지 않음"

MySQL에 원격으로 연결하면 "Host 'xxx. xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다." 호스트 값이 'localhost'와 '%'인 루트 사용자 항목이 있음에도 불구하고 연결이 실패합니다.

이 문제는 일반적으로 MySQL에서 구현하는 보안 조치로 인해 발생합니다. 한 가지 가능한 해결책은 특정 권한과 액세스 제한이 있는 새 관리 사용자를 생성하는 것입니다.

새 관리 사용자 생성:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' ->     WITH GRANT OPTION;

광범위한 권한을 부여하는 것이 편리합니다. , 보안 위험으로 인해 권장되지 않습니다. 대신 다음을 수행하는 것이 좋습니다.

  • 필요한 특정 호스트 및 IP에 대한 사용자 액세스를 제한합니다.
  • 현재 작업에 필요한 권한만 부여합니다.

MySQL FAQ 통찰력:

MySQL FAQ는 다음을 제공합니다. 이 문제에 대한 추가 설명:

"'액세스 거부'가 발생한 이유를 알 수 없는 경우 와일드카드(예: '% 또는 _')가 포함된 호스트 값이 있는 모든 사용자 테이블 항목을 제거하십시오. localhost 연결을 활성화하기 위해 실수로 호스트='%' 및 user='some_user' 항목을 삽입했지만 기본 권한에는 호스트='localhost' 및 user='' 항목이 포함되어 있으므로 작동하지 않습니다. localhost 항목은 더 구체적이며 대신 사용됩니다. localhost 연결을 허용하려면 호스트='localhost' 및 user='some_user'로 두 번째 항목을 삽입하거나 기본 localhost 항목을 삭제하고 FLUSH PRIVILEGES 문을 실행하세요."

위 내용은 '%' 호스트 항목이 있어도 '호스트 'xxx.xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다.'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.