programing

"인증 플러그인 'caching_sha2_password'

minecode 2023. 9. 2. 09:49
반응형

"인증 플러그인 'caching_sha2_password'

MySql 환경을 처음 사용하고 설치한 MySql은 다음과 같은 명령을 사용합니다.

sudo apt-get update
sudo apt-get install mysql-server
mysql_secure_installation

mysql 워크벤치도 설치했습니다.

그러나 로컬 호스트에 연결하려고 하면 다음 오류가 발생합니다.

"인증 플러그인 'caching_sha2_password'을(를) 로드할 수 없습니다. /usr/lib/mysql/plugin/caching_sha2_password.so: 공유 개체 파일을 열 수 없습니다.해당 파일 또는 디렉토리 없음"

Error Screenshot

스택 오버플로로 질문을 올리는 것은 이번이 처음입니다. 프레젠테이션 오류와 구문에 대해 죄송합니다.

그래서 저는 (적어도 저의 경우에는) 오류 메시지의 이유를 찾았습니다.버전 8.04 이상의 MySQL은caching_sha2_password기본 인증 플러그인으로 이전에mysql_native_password사용되었습니다.

이로 인해 예상되는 이전 서비스와의 호환성 문제가 분명히 발생합니다.mysql_native_password인증

솔루션:

  1. 사용 중인 클라이언트 서비스의 업데이트된 버전(예: 최신 워크벤치)을 확인합니다.

  2. MySQL Server를 해당 변경사항 아래 버전으로 다운그레이드합니다.

  3. 사용자별로 인증 플러그인을 변경합니다(글로벌 옵션을 찾지 못했습니다. 글로벌 옵션이 있을 수도 있습니다).

이제 옵션 3의 경우 사용자를 변경하는 것만큼 간단합니다.

ALTER USER user
IDENTIFIED WITH mysql_native_password
BY 'pw';

또는 사용자를 생성할 때:

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

MySQL Server 블로그 참조

오라클 참조

자세한 내용은 여기를 참조하십시오.그거caching_sha2_password플러그인은 MySQL 8 서버의 새로운 기본 인증 플러그인입니다.해당 MySQL 8 배포의 libmysql 라이브러리만 이 플러그인을 소유하고 있으며, 다양한 클라이언트의 C-커넥터인 libmysql에 정적으로 내장되어 있습니다.그거caching_sha2_password별도로 다운로드할 수 없습니다.

libmysql에 중요한 플러그인이 정적으로 포함된 것은 이번이 처음입니다.이로 인해 다른 libmysql(libmariadb 및 이전 libmysql 포함)이 MySQL 8에 연결되지 않습니다. 사용자는 이를 사용하도록 정의되어 있습니다.caching_sha2_password인증

저는 마리아DB의 사람들이 그것을 포함하는 것이 너무 좋기를 바랄 뿐입니다.caching_sha2_passwordMySQL과 MariaDB 간의 드롭인 호환성을 복원하기 위해 libmariadb에 있습니다.

MySQL의 서버 블로그에서:

caching_sha2_password에 대한 지원이 MySQL 8.0.3에 추가되었습니다.이전 버전의 libmysqlclient는 이 플러그인을 지원하지 않습니다.따라서 MySQL 8.0.3에서 사용할 수 있는 것보다 오래된 libmysql 클라이언트를 사용하는 클라이언트 도구는 mysql_native_password 또는 sha256_password와 같은 다른 인증 플러그인을 사용하는 사용자를 사용하여 MySQL 8.0.4 서버에 연결할 수 있지만 이러한 클라이언트는 caching_sha2_password 지원이 필요한 사용자를 사용하여 MySQL 8.0.4 서버에 연결할 수 없습니다.업그레이드된 데이터베이스의 경우 기존 사용자 계정을 사용하여 연결하면 문제가 발생하지 않습니다.

my.cnf 파일에 다음 행을 추가합니다.

default-authentication-plugin=mysql_native_password

그런 다음 서버를 다시 시작합니다.

최신 MYSQL 버전에는 기본 인증 유형으로 'caching_sha2_password'가 있습니다.이로 인해 MYSQL에 대한 원격 연결이 허용되지 않으며 caching_sha2_password 플러그인 오류가 발생합니다.사용하여 수정했습니다.

mysql_native_password로 식별되는 사용자 'yourusername'@'localhost'를 'yourpassword'로 변경합니다.

이제 사용자가 로컬 호스트에서 MySQL에 액세스할 수 있습니다.

여러 원격 호스트에서 MySQL에 액세스하려면 다음을 수행하십시오. **

사용자 'youusername'@'%'를 'youpassword'로 mysql_native_password로 식별합니다.

SQL의 모든 alter 명령을 실행한 후 다음을 실행합니다.

플러시 권한;

또는 MySQL 서버 재시작

Mysql 또는 워크벤치에 로그인하고 이 문제가 있는 모든 사용자에 대해 다음 문을 실행합니다.

alter USER 'YOURUSERFORMYSQL'@'localhost' identified with mysql_native_password by 'YOURPASSWORD'

사용자를 아직 만들지 않은 경우 사용자를 만드는 동안 이 기능을 활성화할 수 있습니다.

create USER 'NEWUSER'@'localhost' identified with mysql_native_password by 'NEWPASSWORD'

언급URL : https://stackoverflow.com/questions/49963383/authentication-plugin-caching-sha2-password

반응형