最近使用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 IP 也添加到这里才对。
添加方法如下:
第一种:你想root使用root从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
第二种:如果你想允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用root作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;
然后再输入:
这相当于是重新加载一下mysql权限,这一步必须有。
flush privileges;
再次输入:
select user,host from user;
可以看到host中已经有了新加的IP。
次在客户端用Navicat for MySQl访问远程mysql数据库,已经能正常打开了。
远程连接mysql出现1045错误的解决办法
第一步:停止MySQL服务
第二步:在你MySQL的安装目录下找到my.ini,文件,打开文件查找到 [mysqld] ,在其下方添加上一行 skip-grant-tables,然后保存。
第三步:启动MySQL服务。