docker无法远程连接mysql_docker部署mysql远程连接 解决1251 client does not support ..

现象:用虚拟机上Docker启动mysql之后无法在本地安装的navicat上远程连接已启动的mysql,错误截图:

71f488216e3d08b53ce0da38eb3149e6.png

原因:mysql 8.0 默认使用 caching_sha2_password 身份验证机制;客户端不支持新的加密方式。

解决方案:

修改用户(root)的加密方式

步骤:

1、进入mysql容器内部

[root@localhost ~]# docker exec -it mysql01 bash

进入之后输入如下命令:

root@8e74f086c2bb:/# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 12Server version:8.0.16 MySQL Community Server -GPL

Copyright (c)2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

会提示并进入mysql容器:输入对应命令

mysql> selecthost,user,plugin,authentication_string from mysql.user;+-----------+------------------+-----------------------+------------------------------------------------------------------------+

| host | user | plugin | authentication_string |

+-----------+------------------+-----------------------+------------------------------------------------------------------------+

| % | root | caching_sha2_password | $A$005$Z%@a}aqP.mjjK

| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | root | caching_sha2_password | $A$005$Gr/wA/PHFFzz``OkyuNlZo3K6eObfcdOORjQoG3zvTztdSnkIDOgg5ZkmzRb/ |

+-----------+------------------+-----------------------+------------------------------------------------------------------------+

5 rows in set (0.00 sec)

host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

输入如下命令:

mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

mysql>flush privileges;

再次查询:

mysql> select host,user,plugin,authentication_string from mysql.user;+-----------+------------------+-----------------------+------------------------------------------------------------------------+

| host | user | plugin | authentication_string |

+-----------+------------------+-----------------------+------------------------------------------------------------------------+

| % | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | root | caching_sha2_password | $A$005$Gr/wA/PHFFzz``OkyuNlZo3K6eObfcdOORjQoG3zvTztdSnkIDOgg5ZkmzRb/ |

+-----------+------------------+-----------------------+------------------------------------------------------------------------+

5 rows in set (0.00 sec)

已经修改完成,点击连接:

f3db0d3205aba208c14e2dcfd08ba6f5.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值