Debian系统下MySQL网络设置步骤
MySQL默认仅监听本地回环地址(127.0.0.1),需修改配置文件调整监听地址。
/etc/mysql/mysql.conf.d/mysqld.cnf(部分版本可能在/etc/mysql/my.cnf)。[mysqld]部分下的bind-address参数,将其值从127.0.0.1改为0.0.0.0(允许所有IP连接);若参数前有#(注释状态),直接删除注释即可。[mysqld]
bind-address = 0.0.0.0 # 允许所有网络接口连接
# skip-networking # 若存在此行(禁用网络),需注释掉
sudo systemctl restart mysql
Debian默认使用ufw作为防火墙管理工具,需开放MySQL默认端口(3306)以允许远程连接。
sudo ufw allow 3306/tcp
sudo ufw reload
sudo ufw status | grep 3306 # 应显示“3306/tcp ALLOW”
默认情况下,root用户仅允许本地登录,需创建专门用于远程访问的用户并分配权限。
mysql -u root -p
remote_user为例,密码设为StrongPassword123):CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123';
your_database为例,权限为ALL PRIVILEGES):GRANT ALL PRIVILEGES ON your_database.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
EXIT;
从远程机器使用MySQL客户端工具(如mysql命令行)测试连接。
mysql -h your_server_ip -u remote_user -p
remote_user的%(任意IP)改为具体信任IP(如192.168.1.100),减少攻击面:GRANT ALL PRIVILEGES ON your_database.* TO 'remote_user'@'192.168.1.100';
FLUSH PRIVILEGES;
ssh -N -L 3307:localhost:3306 user@your_mysql_server_ip
之后通过本地端口3307连接:mysql -u remote_user -p -h 127.0.0.1 -P 3307
ssl=1,并配置证书路径,强制加密连接。sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak),避免配置错误导致服务无法启动。/var/log/mysql/error.log),排查网络连接问题。