Mysql安装后外部机器不能访问的几种原因

2018年1月4日13:27:20
  • A+
所属分类:MySql

以下以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

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: