问题描述:
docker成功安装了mysql,也正常启动了。
启动命名如下:
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
用docker ps -a 也可以查到容器中mysql也在运行中,如下图:
但是在本地用Navicat登录的时候,发现报错了。报错信息
连接Docker启动的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
信息如图:
扫描二维码关注公众号,回复:
10372279 查看本文章
解决方案:
1.进入mysql容器
docker exec -it mysql01 /bin/bash
2.进入mysql
mysql -uroot -pmima(这个地方的老的密码)
3.修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';(这个地方是新的密码)
修改好了之后,再用Navicat登录就可以了。
4、注意事项:
这个时候,如果重启下docker里的mysql容器,用mysql命令登录mysql服务器。你会发现,用新改的密码是登录不了的,需要用老的密码(123456)才能登录。这是因为之前的alter语句的问题。要想保持密码一致,需要再执行下alter语句。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
这里要把刚才那个 % 改成 localhost 才行。