在Debian系统上设置MySQL网络时,有一些关键的技巧和步骤需要注意,以确保数据库的安全性和性能。以下是一些有用的信息:
默认情况下,MySQL可能配置为监听所有网络接口。为了提高安全性,建议将MySQL绑定到本地地址(127.0.0.1),这样可以防止外部直接访问MySQL服务器。
# 编辑MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 在[mysqld]部分添加或修改以下行
bind-address = 127.0.0.1
# 保存文件并重启MySQL服务
sudo systemctl restart mysql
如果你不需要MySQL监听所有网络接口,可以关闭3306端口的外部访问。
# 编辑MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 找到并注释掉以下行
# skip-networking
# 保存文件并重启MySQL服务
sudo systemctl restart mysql
为了增加安全性,可以使用SSH隧道来连接MySQL服务器,而不是直接暴露MySQL端口。
# 在本地机器上创建SSH隧道
ssh -L 3307:localhost:3306 user@your_mysql_server_ip
# 然后使用本地端口3307连接MySQL
mysql -u root -p
安装MySQL后,运行安全安装脚本来设置强健的密码策略和其他安全选项。
sudo mysql_secure_installation
删除或禁用匿名用户,以防止未经授权的访问。
# 登录MySQL
mysql -u root -p
# 删除匿名用户
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
为了防止MySQL直接与本地文件系统通信,可以禁用local-infile
功能。
# 编辑MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 在[mysqld]部分添加或修改以下行
local-infile=0
# 保存文件并重启MySQL服务
sudo systemctl restart mysql
对于Debian 12及以上版本,可以使用netplan来管理网络配置。
# 编辑/etc/netplan/01-netcfg.yaml文件
network:
version: 2
renderer: networkd
ethernets:
ens4:
dhcp4: no
addresses: [192.168.200.251/24]
然后应用配置:
sudo netplan apply