问题描述:

在学习Docker的过程中centOS 通过docker pull mysql下载mysql镜像并成功启动mysql容器

当通过windows主机 SQLyog 连接虚拟的mysql时报如下错误:


 原因分析:

        出现连接失败的原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。在解决问题的过程中发现:

        1.降低mysql版本到5.7可以解决连接不上问题。

        2.如果坚持用mysql8.0以上的版本,可以选择修改mysql的配置。(亲测有效)

     


解决方案:

docker exec -it mysql bash 进入登录mysql

修改配置命令:

 alter user 'root'@'%' identified by '你的密码' password expire never;

 alter user 'root'@'%' identified with mysql_native_password by '你的密码';

 flush privileges;再次刷新一下权限配置。

修改完成,通过宿主机访问数据库:


服务器的安全组端口开了没   ~_~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐