navicat连接docker中mysql容器
docker创建mysql容器,并使用navicat连接至数据库,错误并解决:Authentication plugin ‘caching_sha2_password’ cannot be loaded1、拉取mysql镜像docker pull mysql2、创建mysql容器docker run -d --name mysqltest -p 3312:3306 -e MYSQL_RO...
·
docker创建mysql容器,并使用navicat连接至数据库,错误并解决:Authentication plugin ‘caching_sha2_password’ cannot be loaded
1、拉取mysql镜像
docker pull mysql
2、创建mysql容器
docker run -d --name mysqltest -p 3312:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-d, --detach=false, 指定容器运行于前台还是后台,默认为false
–name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
-p, --publish=[], 指定容器暴露的端口
-e, --env=[], 指定环境变量,容器中可以使用该环境变量
3、进入mysql容器
docker exec -it mysqltest bash
4、进入mysql
mysql -uroot -p
输入密码
5、navicat尝试连接mysql
- 主机填服务器的ip地址
- 端口填创建容器时-p后的第一个端口
- 密码填-e后写的密码
如果能够连接成功,则到这一步就行了
-------------------------分割线-------------------------
6、报错
Authentication plugin ‘caching_sha2_password’ cannot be loaded
原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
7、解决
修改加密规则
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
更新一下用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
flush privileges;
8、连接成功
9、端口请求不同
阿里云服务器的端口有可能没有开放,需在控制台实例管理中修改安全组策略,开放出容器使用的端扣
更多推荐
已为社区贡献1条内容
所有评论(0)