在CentOS上安全设置MySQL,可以遵循以下步骤:
更改默认端口:
/etc/my.cnf
或/etc/mysql/my.cnf
。[mysqld]
部分下,找到port
行并修改为非默认端口(例如3307)。[mysqld] port=3307
禁用远程root登录:
mysql -u root -p
auth_socket
(需要SELinux支持)或caching_sha2_password
。ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your_password'; FLUSH PRIVILEGES;
auth_socket
,则不需要密码,但需要确保SELinux允许这种认证方式。创建专用数据库用户:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'appuser_password'; GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES;
使用防火墙限制访问:
firewall-cmd
命令来限制MySQL端口(例如3307)的访问。firewall-cmd --permanent --zone=public --add-port=3307/tcp firewall-cmd --reload
启用SSL/TLS加密连接:
[mysqld] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/server-cert.pem ssl-key=/path/to/server-key.pem
systemctl restart mysqld
定期更新和维护:
mysql_secure_installation
脚本进行额外的安全设置,如删除匿名用户、禁止root远程登录等。监控和日志记录:
[mysqld] general_log=1 general_log_file=/var/log/mysql/general.log slow_query_log=1 slow_query_log_file=/var/log/mysql/slow-query.log long_query_time=2 log_queries_not_using_indexes=1
备份策略:
通过以上步骤,可以显著提高CentOS上MySQL的安全性。请根据实际情况调整配置,并定期审查和更新安全设置。