在CentOS上设置MySQL的安全性是非常重要的,以下是一些基本步骤和建议:
更改默认端口:
/etc/my.cnf
或/etc/mysql/my.cnf
。port
行,将其值更改为非默认端口(例如3307)。禁用远程root登录:
mysql -u root -p
。DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
FLUSH PRIVILEGES;
删除匿名用户:
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
限制用户权限:
GRANT ALL PRIVILEGES
。john
从本地主机访问数据库mydb
:GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
使用强密码策略:
[mysqld]
validate_password.policy=STRONG
validate_password.length=8
systemctl restart mysqld
。启用SSL连接:
[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
。定期备份数据库:
mysqldump
工具定期备份数据库。mysqldump -u root -p --all-databases > /backup/all-databases-$(date +%F).sql
监控和日志记录:
general_log = 1
general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-queries.log
long_query_time = 2
使用防火墙限制访问:
firewall-cmd
或iptables
限制对MySQL端口的访问。firewall-cmd --permanent --zone=public --add-port=3307/tcp
firewall-cmd --reload
通过以上步骤,可以显著提高CentOS上MySQL的安全性。请根据实际情况调整配置,并定期检查和更新安全设置。