MySQL-8.0을 MySQL Workbench와 연결하고 아래 오류가 발생합니다.
인증 플러그인 'caching_sha2_password'를로드 할 수 없습니다 : dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2) : 이미지를 찾을 수 없습니다
다른 클라이언트 도구를 사용해 보았습니다.
이것에 대한 해결책?
MySQL-8.0을 MySQL Workbench와 연결하고 아래 오류가 발생합니다.
인증 플러그인 'caching_sha2_password'를로드 할 수 없습니다 : dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2) : 이미지를 찾을 수 없습니다
다른 클라이언트 도구를 사용해 보았습니다.
이것에 대한 해결책?
답변:
참고 : MAC OS의 경우
이와 같이 비밀번호의 암호화를 변경할 수 있습니다.
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
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 서버를 다시 시작하고 Workbench를 다시여십시오.
my.ini
파일 위치 : stackoverflow.com/a/20311286/923560
아래의 Alter 명령으로 사용자를 변경하여 사용자 비밀번호의 암호화를 변경할 수 있습니다.
ALTER USER 'username'@ 'ip_address'mysql_native_password로 식별 됨 'password';
또는
이전 비밀번호 플러그인과 함께 작동하면이 오류를 피할 수 있습니다.
먼저 Windows의 Linux / my.ini 파일에 대한 my.cnf 파일 의 인증 플러그인을 변경하십시오 .
[mysqld]
default_authentication_plugin = mysql_native_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/ 탭, 개발 자료 ).
나는 같은 문제가 있었지만 Aman Aggarwal의 대답은 mysql 8.X를 실행하는 Docker 컨테이너에서 작동하지 않았습니다. 컨테이너에 로그인했습니다
docker exec -it CONTAINER_ID bash
그런 다음 루트로 mysql에 로그인하십시오.
mysql --user=root --password
root의 비밀번호를 입력하십시오 (기본값은 'root'입니다). 마지막으로 다음을 실행하십시오.
ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';
모두 준비되었습니다.
docker exec -it CONTAINER_ID mysql --user=root --password
의 존재에 의존하는 두 개의 명령 대신에 ( 어떻게 bash
미래에 확실하지 않은) 어떻습니까?
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
좋아, 이것에 많은 시간을 낭비 했으므로 여기에 요약이 있습니다. 2019 년 3 월 19 일 현재
MySql 8+ 와 함께 Docker 이미지를 사용하려고 시도한 후 SequelPro 를 사용하는 경우 컨테이너에서 실행되는 데이터베이스에 액세스 운이 좋지 않습니다.
내 설정은 docker desktop 2.0.3.0 (mac-mojave)을 사용하는 sequelpro 1.1.2이며 mysql : latest (v8.0.15)를 사용하여 시도했습니다.
다른 사람들이보고했듯이 mysql 5.7을 사용하면 아무것도 필요하지 않습니다.
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
물론, Docker에서 MySql 8+를 사용할 수 있으며 해당 상황에서 (필요한 경우) 여기에 제공된 caching_sha2_password
유형 문제에 대한 다른 답변 이 작동합니다. 그러나 sequelpro는 MySql 8 이상을 사용하지 않습니다.
마지막으로 sequelpro (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;
brew cask install homebrew/cask-versions/sequel-pro-nightly
.
mysql_native_password
는 경우 다음을 수행 할 수 있습니다. stackoverflow.com/a/56402217/2321594
" MySQL Web Installer "를 사용하여 Windows 10 PC에 MySQL을 설치 하고 MySQL Workbench를 사용하여 연결하는 동안 동일한 문제가 발생했습니다. 설치 프로그램 창에서 서버를 재구성하여 문제를 해결했습니다.
"재구성"옵션을 클릭하면 서버를 재구성 할 수 있습니다. "인증 방법"에 도달 할 때까지 "다음"을 클릭하십시오.
이 탭에서 두 번째 옵션 인 "레거시 인증 방법 사용 (MySQL 5.x 호환성 유지)"을 사용하십시오.
다른 모든 것을 그대로 유지하면 문제가 해결됩니다.
이처럼?
docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp
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';
위에서 언급 한 사용자 이름 (기본 사용자)으로 새 로컬 호스트 연결을 설정하고 비밀번호 (new_password)를 사용하여 로그인하십시오.
예의 : Career365 팀이 답변 한 UDEMY FAQ
root
했으며 암호는 없습니다 Sequel Pro
. 명령 행에서는 작동했지만 암호는 없습니다 .
Docker 또는 Docker Compose를 사용하는 사람들은 MySQL 이미지 버전을 설정하지 않았기 때문에이 오류가 발생했습니다. Docker는 자동으로 최신 버전 인 8을 얻으려고 시도합니다.
MySQL을 5.7로 설정하고 이미지를 다시 빌드했으며 정상적으로 작동했습니다.
version: '2'
services:
db:
image: mysql:5.7
mysql:5.7
대신 mysql:latest
나를 위해 해결 문제
이것은 docker-compose의 내 databdase 정의입니다.
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 |
+---+
Windows 10의 경우
my.ini
파일 수정C:\ProgramData\MySQL\MySQL Server 8.0\
[mysqld]
default_authentication_plugin=mysql_native_password
MySQL 서비스를 다시 시작하십시오.
명령 행에서 MySQL에 로그인하고 MySQL에서 다음 명령을 실행하십시오.
새 사용자를 작성하십시오.
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
모든 권한을 부여하십시오.
GRANT ALL PRIVILEGES ON * .* TO 'user'@'localhost';
MySQL 워크 벤치를 열고 새 사용자 자격 증명을 사용하여 새 연결을 엽니 다.
나는 같은 문제에 직면하고 있었고 이것이 효과가 있었다.
나는 그것을 발견했다
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
내 SQL 명령 promt를 엽니 다.
그런 다음 mysql 비밀번호를 입력하십시오.
마지막으로 사용하십시오 :
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
참조 : https://stackoverflow.com/a/49228443/6097074
감사.
프로젝트에서 Docker 이미지 mysql : latest (버전 5 였고 정상적으로 작동 함)를 사용하고 나중 빌드 중에 최신 버전이 버전 8로 전환되어 작동이 중지 되었기 때문에이 문제가 발생했습니다. . 나는 MySQL의 내 이미지를 변경 : 5 나는 한 더 이상이 오류가 발생하지 않습니다 .
위의 답변과 거의 같지만 간단한 쿼리 일 수 있습니다 .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';
다른 컴퓨터의 텍스트 기반 MySQL 클라이언트에서 Docker 여부에 관계없이 MySQL 서버에 연결하려는 경우
대부분의 답변은 데스크톱 클라이언트에서 연결하거나 이전 인증 방법으로 전환하도록 요청하는 것입니다. MySQL 클라이언트 (텍스트 기반)와 연결하는 경우 Docker 컨테이너의 Debian Buster와 함께 작동하게했습니다.
apt 시스템이 있고 wget이 설정되어 있다고 가정하면 다음을 수행하십시오.
sudo apt-get update
sudo apt-get install lsb-release -y
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
원하는 옵션을 선택하십시오. 내 경우에는 MySQL Tools & Connectors
활성화 해야 합니다.sudo apt-get update
sudo apt-get install mysql-client -y
MySql을 다운로드하고 설치하는 동안 레거시 비밀번호를 사용해보십시오. 또는 Mac OS 용 Santhosh Shivan이 게시 한 방법을 따르십시오.
MySQL 5.7을 설치 하여이 문제를 해결했습니다.
우선, 시스템에서 MySQL 5.7 커뮤니티 릴리스 yum 저장소를 활성화해야합니다. yum 저장소 구성을위한 rpm 패키지는 MySQL 공식 웹 사이트에서 제공됩니다. 운영 체제 버전에 따라 아래 명령 중 on을 사용하십시오.
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm
시스템에서 MySQL yum 리포지토리를 성공적으로 활성화했습니다. 이제 운영 체제 버전에 따라 다음 명령을 사용하여 MySQL 5.7 커뮤니티 서버를 설치하십시오.
yum install mysql-community-server
dnf install mysql-community-server
이전 설치 (MySQL Community Server 5.7 및 Workbench 6.1)로 롤백하고 새로운 MySQL 자격 증명을 설정하면 나에게 도움이되었습니다!