`
高级java工程师
  • 浏览: 397073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux下MySQL Error 1130 不能远程访问

阅读更多
最近做Linux项目用到MySQL数据库,可是远程连接MySQL时总是报出erro 2003: Can't connect to MySQL server on '211.87.***.***' (111),昨天查了好几个小时才找到解决方案,如下:

1.sudo gedit /etc/mysql.my.cnf

找到bind-address                                  =127.0.0.1

修改为bind-address                               =0.0.0.0

2.sudo /etc/init.d/ mysql restart

在这种情况下如果再尝试远程连接,则会报出ERROR 1130 (HY000): Host '211.87.***.***'is not allowed to connect to this MySQL server提示信息,不能远程连接数据库。

在MySQL host上按如下命令操作

连接本机上的mysql:   
进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。   
退 出mysql命令:exit(回车)  
show database;

mysql>use mysql; 

mysql>update user set host = '%' where user = 'root';    //这个命令执行错误时可略过 

mysql>flush privileges; 

mysql>select host, user from user; //检查‘%’ 是否插入到数据库中

mysql>quit


最佳的方法

如果想通过mysql的Front工具访问 使用root用户进入系统 直接增加用户分配权限即可:

如何新增一个mysql用户增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

首先用以root用户连入MYSQL,然后键入以下命令:mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了。

mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";或 mysql>grant all privileges on mydb.* to test2@localhost identified by "abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";另外,也可以通过直接往user表中插入新纪录的方式来实现。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics