首先是1045错误:先看链接
后续navicat还会报1251的错,出现这个问题的原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,所以使用Navicat连接MySQL会报错。
解决办法:
我们进入容器内部,
docker exec -it mysql bash
打开mysql数据库,输入密码 root (在输密码root的时候不显示)
mysql -uroot -p
更改加密方式,输入命令
ALTER USER "root"@"%" IDENTIFIED WITH mysql_native_password BY "123456";
期间也可以选择用以下命令设置允许访问的端口,%表示所有端口都能访问(改的过程中注意别把root删了!):
update mysql.user set host = '%' where user = 'root';
然后用以下命令查看修改是否成功:
select host,user,plugin,authentication_string from mysql.user;
发现修改好后刷新:
FLUSH PRIVILEGES;
附
如果在添加容器时error报存在同名容器,但是用docker ls也看不到,那么直接用以下命令删除容器:
docker rm -f 容器名
docker删除镜像和容器的命令链接:
添加链接描述