错误1130(HY000):主机''不允许连接到这个MySQL服务器
为什么哦为什么我不能连接到MySQL?
mysql -u root -ptest101 -h xxx.xxx.xxx.xxx ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
在my.cnf我有以下
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 0.0.0.0
我也跑了下面…
'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root'; FLUSH PRIVILEGES;
我可以在主机上使用mysql -u root -ptest101访问,但不能使用mysql -u root -ptest101 -h xxx.xxx.xxx.xxx
哇…为什么会这样呢? 我是12.04
mysql> SELECT host FROM mysql.user WHERE User = 'root'; +---------------------------------------------+ | host | +---------------------------------------------+ | % | | 127.0.0.1 | | ::1 | | | localhost | +---------------------------------------------+ 5 rows in set (0.00 sec)
你的root
帐号,这个语句适用于任何帐号,可能只能添加localhost权限(推荐)。
你可以检查这个:
SELECT host FROM mysql.user WHERE User = 'root';
如果只能看到localhost
和127.0.0.1
结果,则不能从外部源连接。 如果您看到其他IP地址,但不是您所连接的那个IP地址,那也是一个指示。
您需要添加要授予访问权限的每个系统的IP地址,然后授予权限:
CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';
如果你看到%
,那么还有另外一个问题,那就是“任何远程来源”。 但是,如果您希望任何/所有系统都通过root进行连接,请使用%
通配符来授予访问权限:
CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
最后,重新加载权限,你应该能够进行远程访问:
FLUSH PRIVILEGES;
以下两步对我来说工作得很好:
-
从文件
/etc/mysql/my.cnf
注释掉绑定地址:#bind-address = 127.0.0.1
-
在phpMyAdmin中运行以下查询:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;
$mysql -u root --host=127.0.0.1 -p mysql>use mysql mysql>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'redhat@123'; mysql>FLUSH PRIVILEGES; mysql> SELECT host FROM mysql.user WHERE User = 'root';
mysql> CREATE USER'name'@'%'IDENTIFIED BY'passWord'; 查询OK,0行受影响(0.00秒)
mysql>授予所有特权。 命名'@'%'; 查询OK,0行受影响(0.00秒)
mysql> FLUSH PRIVILEGES; 查询OK,0行受影响(0.00秒)
MySQL的>
- 确保你有你的名字和%正确的方式
- 确保你已经将你的端口3306添加到你正在运行的任何防火墙(尽pipe这会给出不同的错误信息)
希望这可以帮助别人…
对于那些能够访问cPanel的人来说,有一个更简单的方法来解决它。
-
在DATABASES部分下logincpanel =>“远程MySQL”:
-
添加您正在访问的IP /主机名
-
完成!
去PhpMyAdmin,点击所需的数据库,进入Privilages选项卡,并创build新的用户“远程”,并给予他所有privilages和主机字段设置“任何主机”选项(%)。
有一个简单的方法来解决这个错误
只需要replace文件夹中的文件: C:\xampp\mysql\data\mysql
与文件: C:\xampp\mysql\backup\mysql