•   起因   

        今天大虾在学数据库的时候,发现老师的数据库用Navicat一下就连接上了,但是大虾的就是连接不上,而且报错是提示密码有问题。但是在命令行,数据库是可以正常连接的。这就是说数据库本身是没有问题的。然后大虾今天的奇幻冒险就开始了。就是要解决这个问题

  • 解决

经过多方查找资料,最后发现是mysql8 的加密方式有了变化。下面是Navicat连接数据库的具体操作:

①、Windows+r  吊起命令行窗口

②、cmd 回车,进入命令行窗口

MySQL在命令行可以连接上,但是用Navicat 连接不上,怎么办?

③、输入mysql -u root -p   (root 是mysql数据库的用户名,我的测试用的数据库名称是mysql),并输入mysql的密码

MySQL在命令行可以连接上,但是用Navicat 连接不上,怎么办?

④、更改加密方式:输入

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;   #password 是你的数据库密码

MySQL在命令行可以连接上,但是用Navicat 连接不上,怎么办?

⑤、更改密码:输入

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';  # password是你数据库的密码

MySQL在命令行可以连接上,但是用Navicat 连接不上,怎么办?

(第二行的query是输入内容以后,回车返回的结果)

⑥、刷新一下,输入:

FLUSH PRIVILEGES;

MySQL在命令行可以连接上,但是用Navicat 连接不上,怎么办?

(第二行的query是输入内容以后,回车返回的结果)

注意:三个语句缺一不可,三个语句后方都是有分号的,必须要有的

 

我是大虾,一个走在coding路上的菜鸟。

 

相关文章:

  • 2021-12-14
  • 2021-11-29
  • 2021-08-08
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
猜你喜欢
  • 2021-05-27
  • 2021-11-08
  • 2021-11-02
  • 2021-08-06
  • 2021-10-26
  • 2021-12-20
相关资源
相似解决方案