好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server 关闭 返回上一级  

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
+ 查看更多

发布日期:2018-02-24 16:33
分类:SQL
浏览次数:191

这问题应该挺简单的,但是我无论如何就是解决不了,这真是要了我的老命。我只是试图远程连接到我的MySQL服务器。

这样连接

mysql -u root -h localhost -p

上面这句话没什么问题,但是当我尝试

mysql -u root -h 'any ip address here' -p

这句的时候,就有了这样的错误

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
在mysql.user这张表里,user字段为'root'、host字段为'localhost'与host字段为'%'的条目相同。
我已经想破脑袋了,不知道该如何继续。任何想法都好。

回答

可能是种安全预防措施。你可以尝试添加新的管理员账户:
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上。对于其他的操作,指定好你需要的操作权限,并限制用户的可访问性,正如下面Pascal的建议。
编辑:
摘自MySQL FAQ:
如果你搞不清楚为什么你的访问被拒绝,从user表里把所有Host字段包含通配符的条目(包含'%'或'_'的条目)都删掉。一个很常见的错误是插入Host字段值为'%'、User字段值为'some_user'的一个条目,认为这允许你指定localhost从同一台机器连接。这不起作用的原因是默认权限包含一个Host字段值为'localhost'、User字段值为''的条目。因为这个条目的Host值'localhost'比'%'更具体,所以在从localhost连接时优先使用该条目。正确的方法是插入第二个Host='localhost'、User='some_user'的条目,或者删除Host='localhost'、User=''的条目。删除条目后,记得发送FLUSH PRIVILEGES语句以重新加载授权表。另见第5.4.4节的“访问控制,阶段1:连接验证”。
上一篇MySQL字符串替换
如何将Java日期转换成SQL时间戳?下一篇
下一篇如何将Java日期转换成SQL时间戳?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号