1.下载镜像
docker pull mysql:8.0.26
2.运行容器
docker run -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=ang123 --name mysql -d mysql:8.0.26
3.此时使用Navicat登录会报错,是因为mysql8和5的加密方式不一样,需要修改加密方式
4.进入mysql容器
docker exec -it mysql bash
5.登录mysql,修改加密方式
mysql -uroot -pang123;
use mysql;
#修改加密方式
alter user 'root'@'%' identified with mysql_native_password by 'root';
#查看修改后的数据
select host,user,plugin from user;
修改后如下:
6. 此时,用本地的Navicat远程连接Linux中的mysql还是报错,1045,但是密码是正确的,使用grant授权也没有解决问题
最终解决如下,重新修改一下密码即可,密码其实还是原来的密码
ALTER USER 'root'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'ang123';
#使修改生效
flush privileges;
7.此时,可以用Navicat进行远程连接