无法从远程计算机访问MySQL服务器


14

我已经在本地Ubuntu服务器(11.10)中安装了MySQL服务器。我无法从远程计算机连接到服务器。

当我尝试:-时nmap localhost ,它显示以下内容

港口国服务
22 / TCP Open SSH
80 / tcp打开http
139 / tcp打开netbios-ssn
445 / TCP打开Microsoft-DS
631 / tcp打开ipp
3306 / tcp打开mysql

这表示3306MySQL端口已打开,对吗?但是,当我尝试nmap 192.168.0.50使用服务器IP时,会得到以下信息:

港口国服务
22 / TCP Open SSH
80 / tcp打开http
139 / tcp打开netbios-ssn
445 / TCP打开Microsoft-DS

这是否表示使用IP访问时端口未打开?如果是这样,如何打开端口?

我尝试了以下代码,但看起来似乎没有用。

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

怎么了

Answers:


22

您的MySQL服务必须仅服务于本地主机(接口绑定)。出于安全原因,这是默认设置。如果确实需要直接从其他主机访问它,则有一个不错的方法:如何在Ubuntu上启用对MySQL的远程访问,可以遵循以下方法:

  1. 以root用户身份打开您/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf 您喜欢的编辑器,因为在不同的系统上发现不同的。
  2. 寻找该[mysqld]部分,然后在其中寻找bind-address关键字。通常将其设置为127.0.0.1-进行更改以匹配您的“常规” IP地址
  3. 保存文件,然后重新加载服务(例如,使用service mysql restart

请记住,必须通过设置适当的GRANT来使远程用户能够从远程访问其数据库-例如

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

注意@'%',表示“来自任何主机”。


很高兴阅读-不客气!
Izzy 2012年

链接已损坏:(
dino

2
@dino不再。我修复了该问题,并提供了摘录,因此,如果再次失败,则所需步骤仍然在此处。不好的是我从一开始就没有这样做-但是从时间戳中可以看出,这是我的早期答案之一。我们都学会了:)
Izzy

2
绑定地址字段在/etc/mysql/mysql.conf.d/mysqld.cnf我的系统下。
埃里克·G

@EricG感谢您的指导。我的答案是5年前,因此配置有所更改(并且可能变得更加模块化)。
Izzy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.