首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主机'xxx.xx.xxx.xxx‘不允许连接到此MySQL服务器

问主机'xxx.xx.xxx.xxx‘不允许连接到此MySQL服务器
EN

Stack Overflow用户
提问于 2009-10-13 12:40:47
回答 27查看 2.3M关注 0票数 826

这应该是非常简单的,但我不能让它为我的生活工作。

我只是试图远程连接到我的MySQL服务器。

  • 连接为: mysql -u根-h localhost -p
  • 很好,但试着: mysql -u根-h‘任意ip地址’-p
  • 错误失败: 错误1130 (00000):不允许主机'xxx.xx.xxx.xxx‘连接到此MySQL服务器

在mysql.user表中,与主机'localhost‘的用户'root’项与主机'%‘的用户’root‘项完全相同。

我已经束手无策,不知道该怎么做了。任何想法都欢迎。

EN

回答 27

Stack Overflow用户

回答已采纳

发布于 2009-10-13 12:47:06

可能是安全防范措施。可以尝试添加一个新的管理员帐户:

代码语言:javascript
复制
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

尽管正如Pascal和其他人所指出的那样,让一个具有这种访问权限的用户向任何IP开放并不是一个好主意。如果需要管理用户,请使用root,并将其保留在localhost上。对于任何其他操作,请指定所需的权限,并限制用户的可访问性,如下所示。

编辑:

来自MySQL常见问题解答:

如果无法确定为什么拒绝访问,请从用户表中删除包含通配符(包含“%”或“_”字符的条目)的主机值的所有条目。一个非常常见的错误是插入一个带有Host='%‘和user=’some‘的新条目,认为这允许您指定从同一台机器连接的本地主机。这不起作用的原因是默认特权包括一个带有Host='localhost‘和User='’的条目。因为该条目具有比'%‘更具体的主机值' localhost’,所以在从localhost连接时优先使用它而不是新条目!正确的过程是插入带有Host='localhost‘和User=’some‘的第二个条目,或者删除具有Host='localhost’和User=‘User='’的条目。删除该项后,请记住发出刷新权限语句,以重新加载授予表。另见5.4.4节,“访问控制,第1阶段:连接验证”。

票数 1K
EN

Stack Overflow用户

发布于 2013-09-16 05:56:03

您必须创建一个new MySQL User,并在Query prompt中通过phpMyAdmin或命令提示符分配特权如下:

代码语言:javascript
复制
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

一旦完成了所有四个查询,就应该与username / password连接

票数 356
EN

Stack Overflow用户

发布于 2014-06-11 19:31:34

我的错误信息类似,并且说'Host不允许连接到这个MySQL服务器‘,即使我使用根用户。下面是如何确保root拥有正确的权限。

我的设置

  • Ubuntu 14.04 LTS
  • MySQL v5.5.37

溶液

  1. 打开“etc/mysql/my.cnf”下面的文件
  2. 检查:
代码语言:javascript
复制
- port (by default this is 'port = 3306')
- bind-address (by default this is 'bind-address = 127.0.0.1'; if you want to open to all then just comment out this line.  For my example, I'll say the actual server is on 10.1.1.7)

​

  1. 现在访问实际服务器上的MySQL数据库(假设您的远程地址为123.123.123.123,端口3306为用户'root‘),我希望更改对数据库“数据条目”的权限。请记住将IP地址、端口和数据库名称更改为您的设置) mysql -u root -p输入密码: mysql>GRANT ALL ON *.* to root@'123.123.123.123‘,由’put-your--p‘标识;mysql>FLUSH特权;mysql>exit
  2. sudo服务mysqld重新启动
  3. 您现在应该能够远程连接到数据库了。例如,我使用MySQL工作台并输入'Hostname:10.1.1.7‘、'Port:3306’、'Username:root‘
票数 134
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1559955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档