> 데이터 베이스 > MySQL 튜토리얼 > MySQL이 '권한이 없는 사용자 '루트'에 대한 액세스가 거부되었습니다.'를 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

MySQL이 '권한이 없는 사용자 '루트'에 대한 액세스가 거부되었습니다.'를 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-19 14:22:09
원래의
982명이 탐색했습니다.

Why Does MySQL Return

권한이 없는 사용자 'root'에 대한 액세스 거부: 근본 원인 조사

일반적으로 발생하는 오류인 "사용자에 대한 액세스가 거부되었습니다. 'root'@'localhost'(비밀번호 사용: YES) - 권한이 없습니까?"라는 메시지를 가볍게 여겨서는 안 됩니다. 이는 관리자가 중요한 데이터베이스 작업에 액세스하는 것을 효과적으로 차단합니다. 근본적인 문제는 종종 루트 사용자의 스키마 권한이 박탈되어 무력화되는 데서 비롯됩니다.

점 연결하기: MySQL 5.7 및 소켓 연결

MySQL 버전 5.7 및 위에서 소켓 연결이 기본적으로 활성화되어 있다는 점은 주목할 가치가 있습니다. 이는 연결을 설정하는 데 "sudo mysql"을 사용하는 것만으로도 충분하다는 것을 의미합니다. 그러나 "SHOW GRANTS FOR root;"를 실행합니다. '루트' 사용자에 대해 정의된 권한이 없음이 드러날 수 있습니다.

루트 권한 회수

루트 액세스를 복원하려면 다음 단계를 수행할 수 있습니다.

  1. 인증 플러그인 식별: "SELECT user, 인증_문자열, 플러그인, mysql.user의 호스트;" 루트 사용자에 사용되는 인증 플러그인을 결정합니다. 대부분의 경우 "auth_socket"입니다.
  2. 기본 비밀번호 인증으로 전환: 루트가 비밀번호를 사용하여 연결하려면 mysql.user 테이블의 "authentication_string" 값을 다음과 같이 업데이트하세요. "ALTER USER 'root'@'localhost' 명령은 mysql_native_password BY로 식별됩니다. 'Current-Root-Password';".
  3. 권한 새로 고침: "FLUSH PRIVILEGES;" 실행 권한 설정을 새로 고치려면
  4. 변경 사항 확인: "SELECT user, 인증_문자열, 플러그인, 호스트 FROM mysql.user;" 재실행 이제 루트 사용자가 "mysql_native_password" 인증을 사용하고 있음을 표시해야 합니다.

추가 고려 사항

MariaDB의 경우 "SET PASSWORD FOR ' root'@'localhost' = PASSWORD('관리자');" 비밀번호를 설정하는 데 사용해야 합니다.

이 해결 프로세스에서는 액세스 거부 오류가 발생하기 전에 "sudo mysql_secure_installation" 명령이 성공적으로 실행되었다고 가정합니다. 해당 명령이 완료되지 않은 경우 먼저 실행하는 것이 좋습니다.

위 내용은 MySQL이 '권한이 없는 사용자 '루트'에 대한 액세스가 거부되었습니다.'를 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿