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