"인증 플러그인 'caching_sha2_password'를 로드할 수 없습니다"오류 수정

3209 단어 mysqlwebdev

요약



MySQL 8을 설치했으며 MySQL 클라이언트(Sequel Pro, HeidiSQL 등)를 사용하여 데이터베이스에 연결할 수 없습니다. MySQL 클라이언트를 사용하여 연결을 시도할 때마다 다음 오류가 발생합니다.

Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found



또는

Authentication plugin 'caching_sha2_password' cannot be loaded. The specific module can not be found



이유



MySQL 8.0부터 caching_sha2_password는 이전 버전의 기본값이었던 mysql_native_password가 아닌 이제 기본 인증 플러그인입니다. 이는 mysql_native_password에 의존하는 클라이언트(Sequel Pro, HeidiSQL 등)가 이 변경으로 인해 연결할 수 없음을 의미합니다.

해결



1) MySQL 구성 파일에 다음을 추가하여 서버 수준에서 mysql_native_password 메커니즘으로 되돌릴 수 있습니다.

[mysqld]
default_authentication_plugin=mysql_native_password


2) 사용자 수준에서 다음 프로세스를 통해 mysql_native_password 메커니즘으로 되돌릴 수 있습니다.

터미널 창을 열고 명령줄을 통해 MySQL 인스턴스에 연결합니다.

mysql -u [USERNAME] -p


MySQL 비밀번호를 입력하고 Enter 키를 누르면 MySQL 인스턴스에 로그인해야 합니다.

이제 다음 SQL 명령을 실행하여 [USERNAME] , [PASSWORD][HOST]를 적절하게 바꿉니다.

참고: [HOST]는 컴퓨터에서만 액세스를 허용하는 컴퓨터의 IP 주소일 수 있으며, 로컬 개발 환경의 경우에는 %를 사용하여 모든 호스트에서 액세스를 허용할 수 있습니다.

ALTER USER '[USERNAME]'@'[HOST]' \
  IDENTIFIED WITH mysql_native_password \
  BY '[PASSWORD]';


또는

ALTER USER '[USERNAME]'@'%' \
  IDENTIFIED WITH mysql_native_password \
  BY '[PASSWORD]';


이제 MySQL 클라이언트로 돌아가서 정상적으로 연결할 수 있어야 합니다.

참고문헌


  • 2.11.4 MySQL 8.0의 변경 사항 - https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html
  • 6.4.1.2 SHA-2 플러그 가능 인증 캐싱 - https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
  • 좋은 웹페이지 즐겨찾기