错误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

哇…为什么会这样?我是Ubuntu 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;

以上是 错误1130(HY000):不允许主机”连接到该MySQL服务器 的全部内容, 来源链接: utcz.com/qa/420150.html

回到顶部