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

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

我已经在本地 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

这意味着3306MySQL 端口是开放的,对吧?但是当我尝试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

这里有什么问题?

答案1

您的 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';

请注意@'%',它的意思是“来自任何主机”。

相关内容