Linux系统如何解决Navicat for MySQL 1045错误

Linux系统如何解决Navicat for MySQL 1045错误

使用环境:
Windows下使用navicat连接VMware下的Ubuntu虚拟机的MySQL。
发现在连接的时候出现1045的error
Linux系统如何解决Navicat for MySQL 1045错误
于是上网寻找解决方案,遇到了一些坑,页包括navicate官方也没有说得很仔细。

出现1045error的错误原因有两个:

  1. MySQL或其他数据库的用户名或密码输入错误,解决办法只有修改密码或者重装数据库;
  2. MySQL(或其他数据库)禁止远程连接,解决办法是放开MySQL的允许远程连接的IP地址。

我在使用的时候出现1045error的原因就是MySQL默认是禁止远程连接的。

修改MySQL的密码

找到navicat官方,发现有这个error的解决方案,官方连接
官方认为出现1045的error就是数据库的用户名或密码输入错误,所以这里提供的解决方案就是修改密码,并给了几种方法。

我尝试了一遍,果然不行。navicate官方提供的解决方案是在2016年的,并且没有进行更新,也找不到吐槽的地方。

后来我就确认了一遍我的MySQL密码没有问题。然后果断放弃此方案。

如果想修改MySQL的密码的同学我建议看这篇MySQL修改密码,更详细。

修改MySQL的远程连接IP地址

这里也是引用了另一位博主的博客上面的方案,放上原链接
如何设置MYSQL服务器允许远程连接?如果你使用的与数据库不在同一台服务器上电脑,那么MySQL 服务器就需要允许远程链接,网站才能正常运行。那么如何设置MYSQL服务器允许远程连接呢?我想这是很多人都想提出的疑问,下面是如何设置MYSQL服务器允许远程连接?

MySQL服务器的远程链接设置有两种方法:
一、改表法
可能是你的帐号不允许从远程登陆,只能在localhost登录。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改把host更改为"%"
a. bin/mysql -uroot -p密码
b. use mysql----->show tables;------>select host, user from user;
c. update user set host = ‘%’ where user = ‘root’;
d. flush privileges;
二、授权法
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允许用户xiefei从ip为172.22.254.1的主机连接到mysql服务器,并使用123456作为密码 .
GRANT ALL PRIVILEGES ON . TO ‘xiefei’@‘172.22.254.1’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;