해결책: 1. mysql 컨테이너에 로그인한 다음 mysql을 입력합니다. 구문은 "docker exec -it mysql /bin/bash..."입니다. 2. "alter user 'root'@'%'를 사용합니다. with mysql_native_password by '...';" 로그인 비밀번호를 변경합니다. 3. navicat을 사용하여 mysql에 원격으로 연결합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker 버전 19.03, Dell G3 컴퓨터.
#docker installs mysql
docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
이때 navicat이 mysql에 원격으로 접속하면 다음과 같은 오류 메시지가 뜹니다:
해결책:
1 가상 머신의 mysql 컨테이너에 로그인한 다음 mysql
docker exec -it mysql /bin/bash mysql -uroot -p Enter password: mysql> select host,user,plugin,authentication_string from mysql.user;
을 입력합니다. 참고: 호스트는 %입니다. 이는 로컬 호스트에 제한이 없음을 의미합니다. 로컬 머신은 mysql_native_password 이외의 플러그인을 사용하므로 비밀번호를 변경해야 합니다
2. 비밀번호를 변경하세요
mysql> use mysql; mysql> alter user 'root'@'%' identified with mysql_native_password by '123'; mysql> flush privileges; mysql> select host,user,plugin,authentication_string from mysql.user;
3. 위 그림이 나타나면 navicat을 사용하여 다시 원격으로 mysql에 연결하고 성공이 이루어집니다.
추천 학습: "docker 비디오 튜토리얼"
위 내용은 docker로 설치된 mysql에 원격으로 접속할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!