怎么解决mysql不允许远程连接的错误
最近使用Navicat for MySQL
访问远程mysql
数据库,出现报错,显示1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
。
错误原因是:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限。
于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql
数据库的访问权限。
解决办法如下:
在服务器端,打开
cmd
窗口,进入mysql
安装目录bin
下,输入mysql -u root -p
,然后回车,输入密码后回车进入mysql
命令行。输入
use mysql;
输入
select user,host from user;
可以看到
host
中只有localhost
主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。添加方法如下:
-- 你想myuser使用mypassword从任何主机连接到mysql服务器的话。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; -- 如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
然后再输入
-- 这相当于是重新加载一下mysql权限,这一步必须有。 flush privileges;
再次输入
select user,host from user; -- 可以看到host中已经有了新加的IP。
再次在客户端用Navicat for MySQl访问远程mysql数据库,已经能正常打开了。