最近学习docker,真的是一步一个坎啊,唉,各种无厘头的报错,只能一个一个解决,记录下来…
出错情况:
我在虚拟机上用以下命令配置并启动了docker镜像,也设置了root的密码为123456
[root@localhost /]# docker run -p 3306:3306 --name mysql-01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
查看运行的docker镜像,名为mysql-01的镜像已经启动:
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9513bd74964a mysql "docker-entrypoint..." 6 seconds ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-01
d7888c070ed0 tomcat "catalina.sh run" About an hour ago Up 16 minutes 0.0.0.0:8080->8080/tcp tomcat-01
但用navicate连接mysql时报错,错误信息为2059 - Authentication plugin ‘caching_sha2_password’connot be loaded:ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£
解决办法:
- 进入mysql容器(docker exec -it mysql镜像名 /bin/bash)
docker exec -it mysql2 /bin/bash
- 进入mysql
root@9513bd74964a:/# mysql -uroot -p123456
- 修改密码为123456
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH 123456 BY 'root';
设置完后,重新连接,成功!