mysql让其他机器访问_mysql设置允许其它机器连接

mysql设置允许其它机器连接

(2011-10-25 15:27:25)

转载▼

未经设置的mysql不允许其它机器连接,可能报如下错误

Lost connection to MySQL server at 'reading initial communication packet', system error: 111

Host '*.*.*.*(连接数据的机器ip)' is not allowed to connect to this MySQL server

解决方法:

需要经过两步设置

1.设置mysql允许其它机器连接

#vi /etc/mysql/my.cnf

把bind-address=127.0.0.1注释掉,前面加#

2.授权其它机器操作数据库

进入mysql命令行操作

mysql -uroot -p123456(123456是密码)

mysql>GRANT ALL PRIVILEGES ON 数据库名.* TO root@"%" IDENTIFIED BY "123456";123456是密码

数据库名根据访问的实际数据库名修改,也可以设置所有的数据库用*代替

这样其它机器就可以访问指定的数据库了

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server

登陆mysql

首先 use mysql;

按照别人提供的方式update的时候,出现错误。

mysql> update user set host='%' where user = 'root';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

然后查看了下数据库的host信息如下:

mysql> select host from user where user = 'root';

+-------------+------+

| host | user |

+-------------+------+

| % | root |

| 127.0.0.1 | root |

| MicroLetter | |

| MicroLetter | root |

| localhost | |

+-------------+------+

host已经有了%这个值,所以直接运行命令:

mysql>flush privileges;

以下以Ubuntu系统为例,总结了自己遇到过的几种安装Mysql后外部机器不能访问的问题原因。

1、最常见的是用户权限问题。

Mysql安装后,默认只允许本机访问Mysql,通过以下命令可以查看:

mysql>use mysql;

mysql>select user, host from user;

+-----------------------------------+----------------------------------+

| user | host |

+-----------------------------------+----------------------------------+

| root | localhost |

| root | 127.0.0.1 |

| root | ubuntu |

+----------------------------------+-----------------------------------+

如上所示,使用update修改其中某一条记录的host字段值为'%',或者新增一条记录且host字段值为‘%’。

2、防火墙原因

有些机器默认开了防火墙,也有可能导致外部机器不能访问3306端口,以Ubuntu为例,可以通过iptables修改防火墙配置

vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

编辑iptables,新增上面一条记录。根据不同系统或版本差异,更详细的修改方法可以上网搜索查找。

3、绑定地址有误

如果上面两种情况都不存在或不能解决,可以使用netstat命令查看mysql服务绑定的ip,如果绑定的是127.0.0.1,则外部机器也不能访问mysql。可以通过修改Mysql配置文件解决。以Ubuntu系统为例,使用apt-get方式安装的Mysql,配置文件默认位置通常是/etc/mysql/mysql.conf.d/mysqld.cnf

使用sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf命令编辑该文件

注释掉以下一行即可:

bind-address = 127.0.0.1

使用 mysql --help 查看关于MYSQL对应 配置文件my.cnf 搜索顺序,windows 和linux 上都是该命令查看

linux 上可以使用 mysql --help|grep my.cnf 过滤查看

一般linux 上都放在 /etc/my.cnf

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值