권한 누락으로 인해 'root'@'localhost' 사용자의 액세스가 거부되었습니다
문제:
루트 사용자로 MySQL에 액세스하려고 시도하는 사용자에게는 "사용자에 대한 액세스가 거부되었습니다. 'root'@'localhost'(비밀번호 사용: YES)" 오류는 루트 사용자에게 연결을 설정하는 데 필요한 권한이 없음을 나타냅니다.
설명:
기본적으로 MySQL 5.7 이상은 주로 로컬 연결에 소켓 인증을 사용합니다. 즉, "sudo mysql"로 명령줄을 통해 연결을 시도하면 비밀번호가 필요하지 않습니다. 그러나 이 인증 방법은 루트 사용자에게 특정 권한을 부여하지 않습니다.
해결책:
암호 기반 연결을 설정하고 루트 사용자 권한을 부여하려면:
- "SELECT user, 인증_문자열, 플러그인, 호스트 FROM mysql.user;"를 실행합니다. 현재 사용자 구성을 확인하는 쿼리입니다. 루트 사용자에 대한 인증 플러그인이 "auth_socket"인지 확인합니다.
- "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';"를 실행합니다. 루트 사용자의 인증 방법을 소켓에서 네이티브로 수정하는 문입니다.
- "FLUSH PRIVILEGES;"를 실행합니다. 명령을 사용하여 변경 사항이 적용되는지 확인하세요.
- 루트 사용자의 인증 플러그인이 "mysql_native_password"로 변경되었는지 확인하려면 1단계를 반복하세요.
추가 고려 사항:
- "Current-Root-Password"는 기존 루트 사용자의 비밀번호로 대체되어야 합니다.
- MySQL 5.7 이전 버전의 경우 인증 방법은 "caching_sha2_password"일 수 있습니다. 이 경우 "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Current-Root-Password';"를 사용하세요. 대신 명령문을 사용하세요.
- MariaDB 사용자의 경우 다음 명령을 사용하여 루트 사용자의 비밀번호를 설정할 수 있습니다: "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');"
위 내용은 MySQL에서 ''root'@'localhost' 사용자에 대한 액세스가 거부되었습니다'라는 메시지가 나타나는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!