1. 修改MySQL绑定地址(bind-address)
默认情况下,MySQL仅监听本地回环地址(127.0.0.1),仅允许本地连接。若需允许远程访问,需修改配置文件(通常为/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)中的bind-address参数:设置为服务器实际IP地址(如192.168.1.100)以限制特定IP访问,或设置为0.0.0.0以允许所有网络接口访问(需谨慎使用)。修改后需重启MySQL服务(sudo systemctl restart mysql)使更改生效。
2. 配置防火墙规则
Debian系统默认启用ufw(Uncomplicated Firewall),需开放MySQL默认端口(3306)以允许远程连接。可使用以下命令:sudo ufw allow 3306/tcp;若需限制特定IP访问,可指定源IP(如sudo ufw allow from 192.168.1.100 to any port 3306 proto tcp)。修改后通过sudo ufw status验证规则是否生效。若使用iptables,需添加sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT规则并保存(需安装iptables-persistent)。
3. 强化安全控制
sudo mysql_secure_installation脚本,按照提示设置root用户强密码(包含大小写字母、数字和特殊字符),并定期更换。DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES;,禁止匿名用户访问,减少潜在安全风险。GRANT命令仅授权信任IP地址访问数据库(如GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.100' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;),避免开放全局访问权限。[mysqld]部分添加local-infile=0,防止MySQL直接与本地文件系统通信,降低文件泄露风险。4. 配置加密连接(可选但推荐)
为保障数据传输安全,建议启用SSL加密。修改MySQL配置文件,在[mysqld]部分添加ssl=1,并配置证书路径(如ssl-ca=/path/to/ca.pem、ssl-cert=/path/to/server-cert.pem、ssl-key=/path/to/server-key.pem)。重启MySQL服务后,可通过SHOW VARIABLES LIKE '%ssl%';命令验证SSL是否启用。客户端连接时需添加--ssl-mode=REQUIRED参数。
5. 验证网络配置
配置完成后,需通过远程客户端验证连接是否正常。可使用mysql -h <服务器IP> -u <用户名> -p命令,输入密码后若能成功登录,则说明网络配置正确。若无法连接,需检查:MySQL服务是否运行(sudo systemctl status mysql)、防火墙规则是否正确、绑定地址是否设置合理、网络是否可达(ping <服务器IP>)。
6. 网络配置文件管理
Debian系统的网络接口配置文件通常位于/etc/network/interfaces(传统方式)或/etc/netplan/目录(Debian 10及以上版本,如01-netcfg.yaml)。若需修改IP地址、子网掩码或网关,需编辑对应文件:
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1;network: version: 2 renderer: networkd ethernets: ens4: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]。sudo systemctl restart networking或sudo netplan apply)使更改生效。