首页 > 解决方案 > 无法通过 3306 端口连接到远程 MYSQL 服务器

问题描述

我已经花了 6 个多小时试图解决这个问题。安装 mysql 服务器后,我显然将 bind-address 从 127.0.0.1 更改为 0.0.0.0。我也尝试将其注释掉。当我使用 Nmap 检查开放端口状态时,它显示如下:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
3306/tcp open  mysql

所以3306端口肯定是开放的。但是,当我尝试从另一台机器连接服务器时,它显示:

ERROR 2003 (HY000): Can't connect to MySQL server on '49.247.XXX.XXX' (61)

所以我用 telnet 检查它,结果是:

telnet: connect to address 49.247.XXX.XXX: Connection refused
telnet: Unable to connect to remote host

所以我回到那台服务器机器,再次使用 netstat 检查状态,结果如下:

❯ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      769/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      994/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      994/sshd
tcp6       0      0 :::23                   :::*                    LISTEN      3355/xinetd
tcp6       0      0 :::3306                 :::*                    LISTEN      4108/mysqld

我找到了 3306 号,所以它必须是开放的,对吗?我什至尝试了“sudo ufw allow XXXX/tcp”命令以确保 3306 已打开。但是,我对缺少的东西一无所知。有谁知道要寻找什么或如何解决这个问题?提前非常感谢!

标签: mysqllinux

解决方案


您还需要设置防火墙。

安装 Firewalld 并执行以下操作:

 firewall-cmd --zone=public --add-port=3306/tcp \ --permanent

这将确保 3306 是开放和接受的。


推荐阅读