侧边栏壁纸
博主头像
乌克兰老母居博主等级

念念不忘,必有回响

  • 累计撰写 51 篇文章
  • 累计创建 80 个标签
  • 累计收到 13 条评论

记一次docker登录mysql报错的问题

乌克兰老母居
2022-01-15 / 0 评论 / 0 点赞 / 8 阅读 / 623 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

起因

最近想再重温重温MySQL,于是就打开VMware登上了我的小破机。想着之前在docker上面已经装过MySQL了,就尝试着登录了一下,

  1. 进入mysql服务
docker exec -it mysql bash
  1. 输入命令
mysql -uroot -p
  1. 输入密码
    image.png

想象的Welcome to the MySQL没有到来,反而是

image.png

???密码明明没有错,登不上去.....

之后打开Navicat,测试远程登录,🤣登上去了,Navicat可以正常使用。

那为什么命令行却登不上去?

找了好多资料才知道原来是MySQL密码加密插件的原因,MySQL最新的8.0.x
版本使用的时默认的caching_sha2_password插件,而MySQL5.x的版本使用的是mysql_native_password插件。

使用命令行明文密码登录的时候,走的是mysql_native_password,数据库中存的是caching_sha2_password加密过的密码,所以两者自然不匹配。

解决方法

可以先通过以下SQL语句查询确认。

select user, plugin from mysql.user;

在通过以下SQL进行修改:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

语句中的用户:root,host:%,密码找按实际情况修改。

解决之后,再次登录MySQL,就可以登进去了。

image.png

0

评论