centos

centos mysql安全设置怎么做

小樊
34
2025-05-14 20:08:28
栏目: 云计算

在CentOS上设置MySQL的安全性是非常重要的,以下是一些基本步骤和建议:

  1. 更改默认端口

    • 编辑MySQL配置文件/etc/my.cnf/etc/mysql/my.cnf
    • 找到port行,将其值更改为非默认端口(例如3307)。
  2. 禁用远程root登录

    • 登录到MySQL:mysql -u root -p
    • 执行以下SQL命令来禁止root用户远程登录:
      DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
      FLUSH PRIVILEGES;
      
  3. 删除匿名用户

    • 在MySQL命令行中执行:
      DELETE FROM mysql.user WHERE User='';
      FLUSH PRIVILEGES;
      
  4. 限制用户权限

    • 为每个用户指定具体的数据库访问权限,避免使用GRANT ALL PRIVILEGES
    • 例如,只允许用户john从本地主机访问数据库mydb
      GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost' IDENTIFIED BY 'password';
      FLUSH PRIVILEGES;
      
  5. 使用强密码策略

    • 在MySQL配置文件中设置密码策略,例如:
      [mysqld]
      validate_password.policy=STRONG
      validate_password.length=8
      
    • 重启MySQL服务以应用更改:systemctl restart mysqld
  6. 启用SSL连接

    • 在MySQL配置文件中启用SSL:
      [mysqld]
      ssl-ca=/path/to/ca-cert.pem
      ssl-cert=/path/to/server-cert.pem
      ssl-key=/path/to/server-key.pem
      
    • 重启MySQL服务:systemctl restart mysqld
  7. 定期备份数据库

    • 使用mysqldump工具定期备份数据库。
    • 例如,每天备份一次:
      mysqldump -u root -p --all-databases > /backup/all-databases-$(date +%F).sql
      
  8. 监控和日志记录

    • 确保MySQL的日志记录功能开启,以便监控和审计数据库活动。
    • 编辑MySQL配置文件,确保以下行未被注释:
      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
      
  9. 使用防火墙限制访问

    • 使用firewall-cmdiptables限制对MySQL端口的访问。
    • 例如,只允许本地主机访问MySQL端口:
      firewall-cmd --permanent --zone=public --add-port=3307/tcp
      firewall-cmd --reload
      

通过以上步骤,可以显著提高CentOS上MySQL的安全性。请根据实际情况调整配置,并定期检查和更新安全设置。

0
看了该问题的人还看了