在CentOS上安全设置MySQL,可以遵循以下步骤:
更改默认端口:
/etc/my.cnf或/etc/mysql/my.cnf。[mysqld]部分下,找到port行并修改为非默认端口(例如3307)。[mysqld]
port=3307
禁用远程root登录:
mysql -u root -pauth_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的安全性。请根据实际情况调整配置,并定期审查和更新安全设置。