CentOS MySQL网络配置建议
导读:CentOS MySQL网络配置建议 一、基础网络配置 1. 修改绑定IP(控制访问接口) MySQL默认通过bind-address参数绑定到127.0.0.1(仅本地访问),生产环境中应根据需求调整: 允许特定IP访问:若仅需特定服务...
CentOS MySQL网络配置建议
一、基础网络配置
1. 修改绑定IP(控制访问接口)
MySQL默认通过bind-address
参数绑定到127.0.0.1
(仅本地访问),生产环境中应根据需求调整:
- 允许特定IP访问:若仅需特定服务器访问,将
bind-address
设置为该服务器IP(如192.168.1.100
); - 允许所有IP访问:若需远程访问,设置为
0.0.0.0
(需配合防火墙限制IP范围,降低安全风险)。
修改路径:/etc/my.cnf
(或/etc/mysql/my.cnf
),在[mysqld]
section添加/修改bind-address
,保存后重启MySQL服务(sudo systemctl restart mysqld
)。
2. 配置防火墙(放行端口)
MySQL默认使用3306
端口,需确保防火墙允许该端口通信:
- firewalld配置(CentOS 7/8/Stream 9默认):
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent # 永久添加端口 sudo firewall-cmd --reload # 重新加载配置
- SELinux配置(若启用):需允许MySQL通过防火墙,执行:
sudo setsebool -P mysql_connect_any 1 # 允许MySQL连接任何IP
验证端口是否监听:sudo netstat -tulnp | grep mysqld
,应显示0.0.0.0:3306
或指定IP的监听状态。
二、远程访问配置(可选但常见)
1. 授权远程用户
默认情况下,root用户仅能从localhost
访问。若需远程访问:
- 允许root远程登录(不推荐生产环境直接使用root):
UPDATE mysql.user SET Host='%' WHERE User='root'; -- 修改root用户Host为% FLUSH PRIVILEGES; -- 刷新权限
- 创建专用远程用户(推荐):
生产环境中,建议将CREATE USER 'remote_admin'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_admin'@'%' WITH GRANT OPTION; -- 授权所有权限 FLUSH PRIVILEGES;
%
替换为具体IP段(如192.168.1.%
),限制访问来源。
三、端口安全配置(避免冲突与风险)
1. 修改默认端口(可选)
若默认3306
端口易受扫描攻击,可修改为其他端口(如3307
):
- 编辑
/etc/my.cnf
,在[mysqld]
section添加/修改port=3307
; - 重启MySQL服务:
sudo systemctl restart mysqld
; - 更新防火墙规则:
sudo firewall-cmd --zone=public --add-port=3307/tcp --permanent
& &sudo firewall-cmd --reload
; - 测试连接:
mysql -u root -p -h < 服务器IP> -P 3307
。
四、性能与稳定性优化
1. 调整系统网络参数
修改/etc/sysctl.conf
,优化网络连接性能:
net.core.somaxconn = 65536 # 监听队列最大长度(默认128,需增大避免连接拒绝)
net.ipv4.tcp_max_syn_backlog = 65536 # SYN队列最大长度
net.ipv4.tcp_fin_timeout = 10 # TCP连接超时时间(秒)
net.ipv4.tcp_tw_reuse = 1 # 允许复用TIME-WAIT状态的连接
net.core.rmem_max = 16777216 # 接收缓冲区最大大小
net.core.wmem_max = 16777216 # 发送缓冲区最大大小
应用配置:sudo sysctl -p
。
五、安全加固措施
1. 强制SSL加密(可选但推荐)
防止密码在网络中被窃听,要求用户使用SSL连接:
ALTER USER 'root'@'%' REQUIRE SSL;
-- 强制root用户使用SSL
验证SSL状态:SHOW VARIABLES LIKE '%ssl%';
,确保have_ssl
为YES
。
2. 定期更新密码
定期修改MySQL用户密码(尤其是root),使用强密码策略(包含大小写字母、数字、特殊字符):
ALTER USER 'root'@'%' IDENTIFIED BY 'NewStrongPassword456!';
建议每3-6个月更换一次密码。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS MySQL网络配置建议
本文地址: https://pptw.com/jishu/726791.html