docker安装好mysql,并成功启动,在本地用Navicat连接报2059错误,解决方法

问题描述:

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

信息如图:

docker安装好mysql,并成功启动,在本地用Navicat连接报2059错误,解决方法_第1张图片

 

解决方案:

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登录就可以了。

docker安装好mysql,并成功启动,在本地用Navicat连接报2059错误,解决方法_第2张图片

 

4、注意事项:

这个时候,如果重启下docker里的mysql容器,用mysql命令登录mysql服务器。你会发现,用新改的密码是登录不了的,需要用老的密码(123456)才能登录。这是因为之前的alter语句的问题。要想保持密码一致,需要再执行下alter语句。

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

这里要把刚才那个  % 改成  localhost  才行。

你可能感兴趣的:(docker安装好mysql,并成功启动,在本地用Navicat连接报2059错误,解决方法)