Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

MySQL 'root'@'localhost' 액세스 거부 오류 해결 방법

MySQL은 SQL 언어 기반의 오픈소스 데이터베이스 관리 시스템(DBMS)입니다. MySQL은 역시 오픈소스로 무료로 사용할 수 있는 XAMPP 제어판과 함께 번들로 제공됩니다. 하지만 최근 들어 브라우저에서 MySQL 데이터베이스에 접속하려 할 때 'Access Denied for User 'root'@'localhost'(사용자 'root'@'localhost'의 액세스가 거부되었습니다) 오류가 표시되며 접속에 실패한다는 보고가 잇달아 접수되고 있습니다.

MySQL  root @ localhost  액세스 거부 오류 해결 방법

이 글에서는 해당 오류가 발생하는 원인을 살펴보고, 가장 간단하게 문제를 해결할 수 있는 방법을 단계별로 안내해 드리겠습니다. 추가적인 문제를 예방하기 위해 아래 가이드를 순서대로 주의 깊게 따라 해 주시기 바랍니다.

MySQL에서 'Access Denied for User 'root'@'localhost'' 오류가 발생하는 원인

다수의 사용자로부터 접수된 보고를 바탕으로 문제를 조사했으며, 여러 검증된 문제 해결 절차를 실험한 끝에 효과적인 해결책을 마련할 수 있었습니다. 조사 결과 확인된 오류의 주요 원인은 다음과 같습니다.

  • 잘못된 '.ini' 설정: '.ini' 파일에는 MySQL 서버의 실행 구성 정보가 저장되어 있으며, 데이터베이스를 로드하는 과정에서 관문 역할을 합니다. 일부 사례에서는 '.ini' 파일에 필요한 코드 항목이 누락되어 이 오류가 발생한 것으로 확인되었습니다.

문제의 성격을 어느 정도 이해하셨다면, 이제 해결 방법으로 넘어가 보겠습니다.

해결 방법: '.ini' 파일 재구성하기

XAMPP 제어판의 '.ini' 파일이 올바르게 구성되어 있지 않으면 MySQL 데이터베이스와의 보안 연결 설정이 차단될 수 있습니다. 따라서 이번 단계에서는 파일에 추가 명령어를 입력하여 설정을 재구성하겠습니다. 진행 순서는 다음과 같습니다.

  1. XAMPP 제어판을 열고 ApacheMySQL 모두의 'Stop(중지)' 버튼을 클릭합니다.MySQL  root @ localhost  액세스 거부 오류 해결 방법
  2. XAMPP가 설치된 디렉터리로 이동한 뒤 'MySQL' 폴더를 더블클릭합니다.MySQL  root @ localhost  액세스 거부 오류 해결 방법
  3. 'bin' 폴더를 더블클릭하고 'my.ini' 파일을 마우스 오른쪽 버튼으로 클릭합니다.
  4. '편집(Edit)' 옵션을 클릭합니다.
  5. 파일 내용에서 '[mysqld]' 항목을 찾습니다.
  6. '[mysqld]' 줄 바로 아래, 'Port=…' 줄 바로 위에 다음 명령어를 추가합니다.
    skip-grant-tables
  7. '파일(File)' 메뉴를 클릭하고 '저장(Save)'을 선택합니다.
  8. 문서를 닫고 XAMPP 제어판을 다시 엽니다.
  9. ApacheMySQL 모두의 'Start(시작)' 버튼을 클릭합니다.MySQL  root @ localhost  액세스 거부 오류 해결 방법
  10. 브라우저를 열어 MySQL에 로그인을 시도한 후, 오류가 계속 발생하는지 확인합니다.

주의 사항

skip-grant-tables 옵션은 MySQL의 권한 검증을 비활성화하는 기능으로, 인증 없이 데이터베이스에 접근할 수 있게 됩니다. 따라서 이 설정은 문제 해결 및 복구 작업 시에만 임시적으로 사용해야 하며, 작업이 완료되면 반드시 해당 명령어를 삭제하고 MySQL을 재시작하여 원래 상태로 되돌려야 합니다. 이를 방치하면 심각한 보안 취약점이 발생할 수 있습니다.