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

Spa*_*rky 14 mysql firewall networking

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

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

港口国服务
22/tcp 打开 ssh
80/tcp 打开http
139/tcp 打开 netbios-ssn
445/tcp 打开 microsoft-ds
631/tcp 打开ipp
3306/tcp 打开mysql

这意味着3306,MySQL端口是开放的,对吗?但是当我尝试时nmap 192.168.0.50,这是服务器 IP,我得到以下信息:-

港口国服务
22/tcp 打开 ssh
80/tcp 打开http
139/tcp 打开 netbios-ssn
445/tcp 打开 microsoft-ds

这是否意味着使用IP访问时端口未打开?如果是这样,我如何打开端口?

我试过下面的代码,但看起来没有用。

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

这里有什么问题?

Izz*_*zzy 22

你的 MySQL 服务只能服务于 localhost(接口绑定)。出于安全原因,这是默认设置。如果你真的需要直接从其他主机访问它,有一个很好的如何在 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';
Run Code Online (Sandbox Code Playgroud)

注意@'%',这意味着“来自任何主机”。

  • @dino 不再。我解决了这个问题,还包括了一个摘录,所以如果它再次死亡,所需的步骤仍然在这里。糟糕的是,我从一开始就没有这样做 - 但正如您从时间戳中看到的那样,这是我早期的答案之一。我们都学习:) (2认同)
  • 对于我的系统,绑定地址字段位于`/etc/mysql/mysql.conf.d/mysqld.cnf` 下。 (2认同)