navicat 连接远程数据库报错 ERROR 1130,是因为用户没有开启远程访问权限。解决办法:
1.连接mysql所在服务器地址。
2.用root登录到mysql
$ mysql -uroot -p
输入root密码,就可以登录,出现 mysql> ,表示登录成功。
3.查看当前系统用和登录权限
mysql> SELECT user,host FROM mysql.user;
注意:SQL命令行输入的命令结尾一定要有分号 ';' ,不然回车命令不会执行。
user即用户名,host即访问权限,%可以从任何地址访问,localhost表示只能从本机访问。由于我app_dev用户是授权过的,所以是%,新建的用户,默认都是localhost。
4.授权某个用户名可以从其他地址访问。
mysql> grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;
username和password 替换成自己需要在远程登录的用户名和密码就可以了。%代表所有的地址,也可以单独设置为某个IP。不建议开放root远程访问权限,可以新建一个用户用来远程访问。
再次查询4的语句,会发现设置的用户host已经变成了设置的值。
5.刷新。
mysql> FLUSH PRIVILEGES;
再次尝试从远程连接,就可以了。