> 데이터 베이스 > MySQL 튜토리얼 > MySQL 오류 1698(액세스 거부)이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

MySQL 오류 1698(액세스 거부)이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-25 13:12:12
원래의
469명이 탐색했습니다.

Why Am I Getting MySQL Error 1698 (Access Denied) and How Can I Fix It?

MySQL 로그인 중 오류 1698 처리

사용자에게 발생할 수 있는 ERROR 1698(28000): 'root'@ 사용자에 대한 액세스가 거부되었습니다. 루트 사용자로 MySQL 데이터베이스에 로그인하려고 할 때 'localhost'. 이 오류는 MySQL이 기본적으로 인증을 위해 Unix auth_socket 플러그인을 활용하는 Ubuntu와 같은 시스템에서 자주 발생합니다.

배경: auth_socket 플러그인은 인증을 위해 시스템 사용자 자격 증명을 사용합니다. mysql.user 테이블을 쿼리하면 루트 사용자가 이 플러그인에 등록되어 있는지 확인할 수 있습니다.

SELECT User, Host, plugin FROM mysql.user;
로그인 후 복사

가능한 해결 방법:

옵션 1 : mysql_native_password 플러그인을 사용하도록 루트 사용자 구성
이 방법에는 루트 사용자가 mysql_native_password 플러그인을 사용하도록 설정하는 작업이 포함됩니다. 보다 전통적인 mysql_native_password 플러그인:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
sudo service mysql restart
로그인 후 복사

옵션 2: 새 데이터베이스 사용자 생성(권장)
다른 접근 방식은 시스템 사용자 이름을 사용하여 새 데이터베이스 사용자를 생성하는 것입니다. 이는 보다 관리하기 쉽고 안전한 옵션을 제공합니다.

CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD';
GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
FLUSH PRIVILEGES;
sudo service mysql restart
로그인 후 복사

옵션 2를 사용하면 시스템 사용자 이름을 사용하여 MySQL에 연결됩니다:

mysql -u YOUR_SYSTEM_USER
로그인 후 복사

추가 고려 사항:

  • MySQL 버전 8.x.x에서는 auth_socket 플러그인 caching_sha2_password로 대체되었을 수 있습니다. 적절한 인증 플러그인과 로그인 방법은 MySQL 문서를 참조하세요.
  • Debian 9(Stretch)에서는 auth_socket 플러그인의 이름이 unix_socket으로 변경되었습니다. 이에 따라 SQL 명령을 조정하세요.

위 내용은 MySQL 오류 1698(액세스 거부)이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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