1. 程式人生 > >Mysql安裝後外部機器不能訪問的幾種原因

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