运行mysql_secure_installation脚本设置强密码、移除匿名用户、禁用远程root登录、删除测试数据库并重载权限表;创建专用用户并授最小权限,避免使用root;修改配置文件限制绑定地址、关闭危险功能、启用错误日志;及时更新版本与补丁;配合防火墙控制访问IP;定期备份数据并启用审计监控,全面提升MySQL安全性。

MySQL 安装完成后,必须进行安全加固以防止未授权访问、数据泄露和潜在攻击。以下是关键的安全配置步骤,帮助你提升 MySQL 服务的整体安全性。
1. 运行 mysql_secure_installation 脚本
MySQL 提供了 mysql_secure_installation 工具,用于快速完成基本安全设置。
执行命令:sudo mysql_secure_installation
该脚本会引导你完成以下操作:
- 设置强 root 密码
- 移除匿名用户
- 禁止 root 用户远程登录
- 删除测试数据库(test)及其相关权限
- 重新加载权限表使更改生效
2. 管理用户与权限
避免使用默认账户,尤其是 root,应创建专用用户并分配最小必要权限。
建议操作:- 为每个应用创建独立用户,如 app_user@localhost
- 使用 GRANT 命令精确授权,例如:
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'localhost' IDENTIFIED BY 'StrongPass!123'; - 定期审查用户列表:
SELECT User, Host FROM mysql.user; - 删除或禁用不必要的账户
3. 修改默认配置文件
编辑 MySQL 配置文件(通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf),增强安全性。
- bind-address = 127.0.0.1:限制 MySQL 只监听本地连接,防止外部直接访问(除非需要远程访问)
- 关闭不需要的插件或功能,如 skip-symbolic-links
- 启用日志记录:
log_error = /var/log/mysql/error.log
general_log = 0(生产环境建议关闭通用日志) - 设置 sql_mode 为严格模式,减少注入风险
4. 更新与补丁管理
保持 MySQL 版本更新,及时应用官方发布的安全补丁。
操作建议:- 定期检查 MySQL 官方公告和 CVE 漏洞列表
- 通过系统包管理器(如 apt、yum)升级 MySQL
- 避免使用已停止维护的旧版本(如 5.6 及更早)
5. 启用防火墙限制访问
即使 bind-address 已设为本地,也应使用系统防火墙进一步控制端口访问。
例如使用 ufw:- 仅允许可信 IP 访问 3306 端口:
sudo ufw allow from 192.168.1.100 to any port 3306 - 默认拒绝外部访问 MySQL 端口
6. 定期备份与监控
安全不仅在于防护,还包括可恢复性。
- 制定自动备份策略(如使用 mysqldump 或 xtrabackup)
- 监控异常登录行为和高频率查询
- 启用审计插件(如 MariaDB 的 Audit Plugin 或商业版 MySQL Enterprise Audit)
基本上就这些。只要按步骤清理账户、限制访问、更新系统并持续监控,MySQL 的安全性就能大幅提升。细节容易忽略,但每一步都关键。










