집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법
MySQL 8.4(최신 LTS)에 도입된 주요 변경 사항 중 하나 2024년 현재 릴리스)에는 "MySQL 기본 비밀번호" 플러그인이 없습니다. 기본적으로 더 오래 활성화되어 있습니다. 또한 MySQL 9.0에서는 이 플러그인을 제거합니다.
이 변경 사항은 mysql_native_password 인증 플러그인과 함께 MySQL 데이터베이스를 사용하는 PHP 및 기타 애플리케이션에 영향을 미칩니다. mysql_native_password 플러그인은 더 이상 기본적으로 로드되지 않거나 전혀 사용할 수 없기 때문에 PHP PDO/MySQLi 연결이 실패합니다.
더 이상 로드되지 않는 mysql_native_password 플러그인을 사용하여 데이터베이스에 연결하려고 하면 PDO/MySQLi에서 오류가 발생합니다. 에서 반환한 오류 MySQL:
PDO:
SQLSTATE[HY000] [1524] Plugin 'mysql_native_password' is not loaded
MySQLi:
mysqli_sql_exception Plugin 'mysql_native_password' is not loaded.
MySQL 8.0.34~8.3에서 mysql_native_password 플러그인을 사용하면 다음과 같은 결과가 발생합니다. MySQL 오류에 기록된 경고 log:
[Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
MySQL 8.4에서는 더 이상 mysql_native_password 플러그인을 로드하지 않도록 변경하여 위에 표시된 오류가 발생합니다. MySQL 9.0에서는 mysql_native_password 플러그인이 완전히 제거되어 동일한 오류가 발생합니다.
PHP는 PHP 7.4부터 caching_sha2_password 인증을 지원합니다. 이 오류를 해결하려면 MySQL 사용자의 인증 플러그인을 caching_sha2_password로 변경하세요.
MySQL 콘솔에서 다음을 실행하여 더 이상 사용되지 않는 인증 플러그인을 사용하는 사용자를 나열하세요.
SELECT user, host, plugin from mysql.user WHERE plugin='mysql_native_password';
위 명령을 실행하면 mysql_native_password를 사용하는 모든 사용자가 나열되어야 합니다. 플러그인:
충분한 권한이 있는 MySQL 콘솔에서 mysql_native_password 플러그인을 사용하여 각 사용자에 대해 다음 명령을 실행하세요.
ALTER USER ''@'' IDENTIFIED WITH caching_sha2_password BY '';
인증 플러그인이 업데이트된 후 PHP 및 기타 애플리케이션 caching_sha2_password 플러그인을 통해 데이터베이스에 연결할 수 있습니다.
MySQL 8.4에서는 더 이상 기본적으로 mysql_native_password 플러그인을 활성화하지 않지만 여전히 활성화할 수 있습니다. 이 플러그인. PHP 애플리케이션이 caching_sha2_password 플러그인을 사용할 수 없는 PHP 7.3 이하 버전을 실행하지 않는 한 이 작업을 수행하지 않는 것이 좋습니다.
mysql_native_password 플러그인을 활성화하려면 다음을 [mysqld] 섹션에 추가하세요. MySQL 구성 파일을 다운로드하고 MySQL 서버 서비스를 다시 시작하세요.
Debian/Ubuntu 기반 시스템에서 이 파일은 다음 위치에 있습니다. /etc/mysql/ 디렉토리. 이를 위해 새 파일(예: /etc/mysql/conf.d/enable-mysql-native-password.cnf)을 생성하는 것이 좋습니다.
SQLSTATE[HY000] [1524] Plugin 'mysql_native_password' is not loaded
mysql_native_password 플러그인은 다음과 같습니다. 에서 제거됨 MySQL 9.0이므로 위의 구성을 추가하면 작동하지 않으며 다음과 같은 작업을 수행할 수 있습니다. mysql_native_password 구성이 MySQL 9.0에서 더 이상 유효하지 않기 때문에 구성 오류가 발생합니다.
위 내용은 MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!