docker安装mysql8后,使用navicat连接mysql数据库时,发现无法连接。出现2059的错误,原因是mysql8.0以前版本的加密规则为mysql_native_password,而在mysql8.0以后的加密规则为caching_sha2_password。解决这问题可将mysql用户登录的加密规则修改为mysql_native_password。
1、运行mysql;docker run ‐p 3306:3306 ‐‐name mysql ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql
(可用docker ps 查看运行中的容器)
2、进入容器bash并进入mysql命令行;docker exec -it mysql bash mysql -uroot -p 输入密码
3、使用如下命令修改;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4、测试链接成功!