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
),排查网络连接问题。