programing

인증 플러그인 'caching_sha2_password'를 로드할 수 없습니다.

newsource 2022. 9. 19. 23:44

인증 플러그인 'caching_sha2_password'를 로드할 수 없습니다.

MySQL - 8.0을 MySQL Workbench에 연결하면 다음 오류가 발생합니다.

인증 플러그인 'caching_sha2_password'를 로드할 수 없습니다. dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): 이미지를 찾을 수 없습니다.

다른 클라이언트 툴에서도 시도해 보았습니다.

이에 대한 해결책이 있나요?

이렇게 비밀번호 암호화를 변경할 수 있습니다.

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

주의: MAC OS용

  1. [ System Preferences ]> [ Initialize Database ]에서 MySQL을 엽니다.
  2. 새 암호를 입력합니다.
  3. '기존 비밀번호 사용'을 선택합니다.
  4. 서버를 재기동합니다.
  5. MySQL Workbench 연결

이미지 설명

Windows 10의 경우:

명령 프롬프트를 엽니다.

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)

mysql> exit

또는 다음과 같이 my.ini 구성을 변경할 수 있습니다.

[mysqld]

default_authentication_plugin=mysql_native_password

MySQL Server를 재시작하고 Workbench를 다시 엽니다.

저도 같은 문제가 있었습니다만, Aman Aggarwal의 답변은 mysql 8.X를 실행하고 있는 Docker 컨테이너에서는 통하지 않았습니다.컨테이너에 로그인했습니다.

docker exec -it CONTAINER_ID bash

다음으로 루트로 mysql에 로그인합니다.

mysql --user=root --password

root 비밀번호 입력(기본값은 'root') Finally Run:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

다 됐습니다.

다음 Alter 명령으로 사용자를 변경하여 사용자 비밀번호 암호화를 변경할 수 있습니다.

사용자 'username'@'ip_address'는 mysql_native_password로 식별됩니다.

또는

오래된 패스워드 플러그인으로 동작하도록 하면, 이 에러를 회피할 수 있습니다.

먼저 Windows의 my.cnf 파일/my.ini 파일의 인증 플러그인을 변경합니다.

[미스터리]

default_authentication_password=passwords_password

mysql 서버를 재시작하여 변경 내용을 적용하고 MySQL을 통해 mysql 클라이언트와 연결을 시도합니다.

그래도 접속할 수 없고, 다음의 에러가 표시되는 경우는, 다음과 같습니다.

Unable to load plugin 'caching_sha2_password'

이는 사용자에게 위의 플러그인이 필요하다는 것을 의미합니다.따라서 기본 플러그인을 변경한 후 create user 또는 grant 명령을 사용하여 새 사용자를 생성해 보십시오.새로운 사용자에게 네이티브 플러그인이 필요하며 MySQL을 연결할 수 있습니다.

감사합니다.

현재(2018/04/23) 개발 릴리스를 다운로드해야 합니다.GA는 동작하지 않습니다.

최신 GA 버전(6.3.10)에 접속할 수 없었습니다.

와 함께 작동했습니다.mysql-workbench-community-8.0.11-rc-winx64.msi( https://dev.mysql.com/downloads/workbench/, の [ Development Releases ]탭).

좋습니다. 많은 시간을 허비했으므로 2019년 3월 19일자로 요약하겠습니다.

MySql 8+에서 Docker 이미지를 사용하고 SequelPro를 사용하여 해당 Docker 컨테이너에서 실행 중인 데이터베이스에 액세스하려는 경우 운이 없습니다.

속편프로 2699호 참조

succentpro 1.1.2는 도커 데스크톱 2.0.3.0(mac - mojave)을 사용하고 mysql:latest(v8.0.15)를 사용해 보았습니다.

다른 사용자가 보고한 바와 같이 mysql 5.7을 사용하면 아무 것도 필요 없습니다.

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

도커에서는 8할 수 (경우) 에 MySql 8+에 대한 있습니다.이 경우 (필요한 경우) 여기에 기재되어 있는 다른 답변이 있습니다.caching_sha2_password타입의 문제는 기능합니다. 8를 입니다.

마지막으로 succentpro(2013-2014년 신뢰받는 친구)를 포기하고 DBeaver를 설치했습니다.모든 것이 처음부터 잘 되었다.도킹 스테이션의 경우 다음을 사용했습니다.

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

다음을 사용하여 mysql 데이터베이스를 빠르게 확인할 수 있습니다.

docker exec -it mysql1 bash

mysql -u root -p

show databases;

"MySQL Web Installer"를 사용하여 Windows 10 PC에 MySQL을 설치하고 있었는데 MySQL 워크벤치를 사용하여 연결을 시도하다가 동일한 문제가 발생했습니다.설치창에서 서버를 재구성하여 문제를 해결했습니다.

MySQL Web Installer - 홈 화면

"Reconfigure(재구성)" 옵션을 클릭하면 서버를 재구성할 수 있습니다."Authentication Method(인증 방법)"가 표시될 때까지 "Next(다음)"를 클릭합니다.

MySQL Installer - 인증방법

이 탭이 열리면 두 번째 옵션 "기존 인증 방법 사용(MySQL 5.x 호환성 유지)"을 사용합니다.

다른 건 다 그대로 놔두고 그렇게 해결했어요.

주의: Linux (Debian, Ubuntu, Mint)의 경우

다음 오류가 발생하였습니다.

MySQL Error Message: Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

다음 단계로 해결했습니다.

  1. mysql 을 입력합니다.$ mysql -u root -p과 같이 입력합니다.root " " " 。

  2. db: mysql db 사용:mysql> use mysql;

  3. 해결합니다.mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

  4. ★★★★★★★★★★★★★★★★」mysql> quit;

  5. 알았어!

이렇게요?

docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp

PWD에서 시도

https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml

또는 MySQL Workbench 8.0.11을 사용해야 합니다.

  • MySQL 명령줄 클라이언트 열기

  • 새 패스를 사용하여 새 사용자 생성

맨 위에 있는 bin 폴더에 대한 경로의 예를 고려해 명령 프롬프트에서 실행해야 하는 코드를 한 줄씩 다음에 나타냅니다.

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p    
current password...***  
CREATE USER 'nativeuser'@'localhost'  
IDENTIFIED WITH mysql_native_password BY 'new_password';
  • 그런 다음 Workbench에 다시 액세스할 수 있습니다(새 로컬 호스트 연결을 만들고 새 자격 증명을 사용하여 프로그램 사용을 시작한 후 다시 액세스할 수 있습니다).

위에서 설명한 사용자 이름을 사용하여 새 로컬 호스트 연결을 설정하고(네이티브 사용자), 암호(new_password)를 사용하여 로그인합니다.

이미지

커리어365팀이 UDEMY에 관한 FAQ에 답변합니다.

Windows 10 의 경우는,

  1. my.iniC:\ProgramData\MySQL\MySQL Server 8.0\

    [mysqld]
    default_authentication_plugin=mysql_native_password
    
  2. MySQL 서비스를 재시작합니다.

  3. 명령줄에서 MySQL에 로그인하고 MySQL에서 다음 명령을 실행합니다.

    • 새 사용자를 만듭니다.

      CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
      
    • 모든 권한을 부여합니다.

      GRANT ALL PRIVILEGES ON * .* TO 'user'@'localhost';
      
  4. MySQL 워크벤치를 열고 새 사용자 자격 증명을 사용하여 새 연결을 엽니다.

나는 같은 문제에 직면해 있었고 이것은 효과가 있었다.

이것이 진정한 해결책은 아니지만, 막히면 로컬에서 효과가 있습니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

도커 구성의 데이터베이스 정의는 다음과 같습니다.

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

여기에 해당하는 행이 진입점입니다.

빌드 및 구축 후 다음을 사용하여 테스트할 수 있습니다.

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

Docker 또는 Docker Compose를 사용하는 사용자의 경우 MySQL 이미지 버전을 설정하지 않았기 때문에 이 오류가 발생했습니다.도커는 자동으로 최신 버전인8 을 취득하려고 합니다.

MySQL을 5.7로 설정하고 이미지를 재구축하면 정상적으로 동작합니다.

version: '2'
services: 
  db:
   image: mysql:5.7

나는 그것을 발견했다.

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

혼자서는 작동하지 않았다.그리고 또 세팅이 필요했어요.

[mysqld]
    default_authentication_plugin=mysql_native_password

PHP 7.0을 실행하는 Ubuntu 18.04의 /etc/mysql/mysql.conf.d/mysqld.cnf에 포함됨

다음은 Windows 10에 MySQL 8.0을 설치한 후 나에게 효과가 있었던 솔루션입니다.

사용자 이 MySQL이라고 합니다.root는 '''입니다.admin

명령 프롬프트를 열고 다음 명령을 입력합니다.

CD C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

mysql_native_password로 식별된 사용자 'root'@'localhost'를 'admin'으로 변경하십시오.

저처럼 GitLab CI에서 이 오류가 발생하는 경우: 최신 버전에서 5.7 버전으로 변경하십시오.

# .gitlab-ci.yml

rspec:
  services:
    # - mysql:latest (I'm using latest version and it causes error)
    - mysql:5.7 #(then I've changed to this specific version and fix!)

sql 명령어 프롬을 엽니다.

순서 1

다음으로 mysql 비밀번호를 입력합니다.

순서 2

최종 사용:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

참조: https://stackoverflow.com/a/49228443/6097074

감사합니다.

프로젝트에서는 Docker image mysql:latest(버전 5로 정상적으로 동작하고 있는 것)를 사용하고 있었기 때문에, 이후 빌드중에 최신 버전이 버전 8로 전환되어 동작을 정지했습니다.이미지를 mysql:5로 변경해서 이 에러는 발생하지 않게 되었습니다.

이 오류는 사용 중인 툴이 MySQL8과 호환되지 않을 때 발생합니다. MySQL8용 MySQL Workbench의 최신 버전으로 업데이트해 보십시오.

위의 답변과 거의 비슷하지만 간단한 질문일 수 있습니다.MySQL 업그레이드 후 하이버네이션과 함께 스프링 부트 어플리케이션에서 이 오류가 발생하였습니다.당사의 DB에 대해 아래 쿼리를 실행하여 새 사용자를 생성했습니다.이것은 최신의 양호한 인증 caching_sha2_password 대신 sha256_password를 사용하기 위한 임시 조치라고 생각합니다.

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';

macOS용 MySQLWorkbench 8.0.11은 이 문제를 해결합니다.도커에서 실행 중인 루트 비밀번호로 보호된 mysql 인스턴스와의 연결을 확립할 수 있습니다.

다른 컴퓨터에서 텍스트 기반 MySQL 클라이언트에서 MySQL 서버에 연결하려는 경우(도커 여부에 관계없이)

대부분의 답변은 데스크톱클라이언트에서 접속하거나 오래된 인증방식으로 전환하도록 요구하는 것입니다.MySQL 클라이언트(텍스트 베이스)와 접속하고 있는 경우는, Docker 컨테이너내의 Debian Buster로 동작하도록 했습니다.

적절한 시스템과 셋업을 완료했다고 가정하고 다음을 수행합니다.

  1. sudo apt-get update
  2. sudo apt-get install lsb-release -y
  3. MySQL사이트에서 적절한 소스를 업데이트하는 Debian 패키지를 다운로드합니다.
  4. sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb원하는 옵션을 선택합니다.저 같은 경우에는MySQL Tools & Connectors유효하게 합니다.
  5. sudo apt-get update
  6. sudo apt-get install mysql-client -y
  7. 완료했습니다. 이제 새 MySQL 클라이언트를 실행하고 새 인증 방법으로 연결할 수 있습니다.

새로운 인증 방식을 계속 사용하는 경우 적절한 해결책은,mariadb-connector-c패키지.알파인의 경우, 도망 가:

apk add mariadb-connector-c

이것은 실종자들을 추가할 것이다.caching_sha2_password.so도서관에/usr/lib/mariadb/plugin/caching_sha2_password.so.

밑 해결책을 위해 일했다.

Mysql Workbench-&gt에;Server->, 사용자 및 특권 1다.추가를 클릭하셔서 Account

2.Under 로그인 탭과 개별 행정 역할 및 스키마 Privileges을 인증 형식 표준으로 선택하는 것이다 새로운 세부 정보를 제공합니다.

여기에 이미지 설명 입력

사실 MySql 설치 시에 인증의 두개의 형식을 허용한다.

  1. 암호 암호화
  2. 레거시와 암호화

여기에 이미지 설명 입력

리드 여기

그래서 유산 인증는지 확인함으로써 문제가 해결되었다.

반면 및 설치 MySql, 나를 도와 주었던 다운로드 유산 암호를 사용하세요.아니면 메서드를 Santhosh Shivan에 의해 맥 OS 실려 따릅니다.

그냥:최신 암호화와 호환되는 것은 최근 mysqlworkbench을 다운 받아

https://downloads.mysql.com/archives/workbench/

주의: Mac big Sur에서는 최신 버전 8.0.22와 8.0.23은 버그가 있어 작동하지 않습니다.

수정될 때까지 8.0.21을 사용합니다.

M1(arm64)에서 도커를 실행하고 있는데 도커배시에서의 직접 변경방법이 통하지 않습니다.를 mysql로 합니다.mysql:8.0.26이 ', 하다, 하다'로 되어 있습니다.linux/x86_64default_authentication_plugin=mysql_native_password my.cnf로 .

언급URL : https://stackoverflow.com/questions/49194719/authentication-plugin-caching-sha2-password-cannot-be-loaded