ERROR 1130 (HY000): Host '' is not allowed to connect to this MySQL server [重复]

Posted

技术标签:

【中文标题】ERROR 1130 (HY000): Host \'\' is not allowed to connect to this MySQL server [重复]【英文标题】:ERROR 1130 (HY000): Host '' is not allowed to connect to this MySQL server [duplicate]ERROR 1130 (HY000): Host '' is not allowed to connect to this MySQL server [重复] 【发布时间】:2013-10-06 17:32:27 【问题描述】:

为什么我连接不上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

哇...为什么会这样?我是 ubuntj 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)

【问题讨论】:

请记住,mysql 帐户不仅仅是用户名。它们是user@host 对,其中任何一对都可以是通配符。您可能使用了正确的用户名,但您是否也授予了正确的主机权限? 【参考方案1】:

您的root 帐户,并且此声明适用于任何帐户,可能只添加了本地主机访问权限(推荐)。

您可以通过以下方式检查:

SELECT host FROM mysql.user WHERE User = 'root';

如果您只看到localhost127.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;

【讨论】:

这篇文章成功了bucktownbell.com/?p=653 那个 sql 语句“GRANT ALL PRIVILEGES ON . TO 'root'@'%'”需要一个“;”之后…… 现在它只是抱怨Access denied for user 在此之后你应该做SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPass'); mysql 文档只说更新'root'@'localhost' 以“更改root 密码”,这会欺骗人们相信他们已经更改了root 密码,而实际上他们没有更改。 @JazzCat % 在dev.mysql.com/doc/refman/5.7/en/request-access.html 中记录是正确的【参考方案2】:

以下两个步骤对我来说效果很好:

    从文件/etc/mysql/my.cnf中注释掉绑定地址:

    #bind-address = 127.0.0.1

    phpMyAdmin 中运行以下查询:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;

【讨论】:

+ sudo service mysql restart 移除绑定将使服务器在所有 IP 上打开...这是一个安全问题! 为我工作。谢谢大佬。 @AlexFrenkel 但是我们没有通过权限进行密码验证吗?您如何以其他方式从动态 ip 访问它以进行调试。我可以稍后更改它以进行生产【参考方案3】:
$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';

【讨论】:

sudo service mysql restart 在此之后需要运行谢谢【参考方案4】:

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'passWord';查询正常,0 受影响的行(0.00 秒)

mysql> GRANT ALL PRIVILEGES ON . TO 'name'@'%';查询正常,0 行 受影响(0.00 秒)

mysql> 刷新权限;查询正常,0 行受影响(0.00 秒)

mysql>

    确保您的姓名和百分比正确 确保您已将端口 3306 添加到您可能正在运行的任何防火墙(尽管这会给出不同的错误消息)

希望这对某人有所帮助...

【讨论】:

【参考方案5】:

对于那些能够访问 cpanel 的人来说,有一个更简单的方法来绕过它。

    登录 cpanel => DATABASES 部分下的“Remote MySQL”:

    添加您正在访问的 IP/主机名

    完成!!!

【讨论】:

cpanel 是第三方的 gui 工具。【参考方案6】:

转到 PhpMyAdmin,单击所需的数据库, 转到权限选项卡并创建新用户“远程”,并给他所有权限 并在主机字段中设置“任何主机”选项(%)。

【讨论】:

【参考方案7】:

有一个简单的方法来解决这个错误

只需替换文件夹中的文件:C:\xampp\mysql\data\mysql

文件位于:C:\xampp\mysql\backup\mysql

【讨论】:

以上是关于ERROR 1130 (HY000): Host '' is not allowed to connect to this MySQL server [重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql远程连接:ERROR 1130 (HY000): Host ‘*.*.*.*‘ is not allowed to connect to this MySQL server

mysql远程连接:ERROR 1130 (HY000): Host ‘*.*.*.*‘ is not allowed to connect to this MySQL server

mysql远程连接:ERROR 1130 (HY000): Host ‘*.*.*.*‘ is not allowed to connect to this MySQL server

mysql远程连接:ERROR 1130 (HY000): Host ‘*.*.*.*‘ is not allowed to connect to this MySQL server

mysql远程连接:ERROR 1130 (HY000): Host ‘*.*.*.*‘ is not allowed to connect to this MySQL server

远程登陆mysql报错:ERROR 1130 (HY000): Host '10.0.0.8' is not allowed to connect to this MySQL serv