MySQL的监听地址

在某云的ECS上搭建了MySQL服务端,防火墙安全组一切正常,却无法远程访问。

本机扫描服务器端口:

 ⚡yangz ❯❯ nmap -sS MD
Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-26 19:23 中国标准时间
Nmap scan report for MD 
Host is up (0.045s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  closed https
3306/tcp closed   mysql

果然,端口是通的,没人监听而已。
检查ECS端口使用情况:

root@minedl:~# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      24735/mysqld 

mysql绑定到了本地回环测试的地址上,所以无法对外提供服务。做如下配置:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改其中的bind-address = 0.0.0.0 ,注意不可以直接注释掉,否则会导致如下第二种结果。

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      24735/mysqld #只监听localhost
tcp6       0      0 :::3306                 :::*                    LISTEN      24794/mysqld #只监听ipv6,不监听ipv4
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      24877/mysqld #监听所有ipv4

出现结果三,本机访问也成功访问。