运行mysql_secure_installation设置强密码、移除匿名用户、禁用root远程登录、删除测试数据库并刷新权限;2. 遵循最小权限原则创建专用账号,限制登录IP,避免高危权限;3. 修改my.cnf配置文件,绑定127.0.0.1、关闭symbolic-links、启用错误日志;4. 设置数据目录权限为750,配置文件为640,确保MySQL以mysql用户运行;5. 定期使用mysqldump备份并加密存储,限制备份访问,设置BIOS/GRUB密码。离线环境需强化本地安全策略以防范内部威胁。

MySQL 离线安装后,必须立即进行安全加固,防止未授权访问和潜在攻击。尤其在无法联网的生产环境中,系统本身缺乏自动更新机制,更需手动配置严格的安全策略。以下是关键步骤与配置建议。
1. 初始化安全设置(mysql_secure_installation)
尽管是离线安装,只要 MySQL 服务已启动,仍可运行安全初始化脚本:
- 设置强 root 密码:避免使用默认空密码或简单密码,建议包含大小写字母、数字和特殊字符。
- 移除匿名用户:匿名账户允许无密码登录,存在严重安全隐患。
- 禁止 root 远程登录:root 账户仅限本地访问,远程管理应使用普通权限账号+权限提升机制。
- 删除测试数据库:test 数据库默认开放,可能被用于攻击探测。
- 刷新权限表:确保所有更改立即生效。
执行命令:
mysql_secure_installation
2. 用户权限最小化原则
避免使用 root 或高权限账户进行日常操作,应创建专用账号并限制其权限范围:
- 为每个应用创建独立数据库和用户,按需分配 SELECT、INSERT、UPDATE、DELETE 权限。
- 禁止授予 FILE、SUPER、PROCESS、SHUTDOWN 等高危权限,除非明确需要。
- 限制用户登录主机,如只允许来自应用服务器的 IP 登录。
示例:
CREATE USER 'app_user'@'192.168.10.50' IDENTIFIED BY 'StrongPass!2024';
GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'app_user'@'192.168.10.50';
FLUSH PRIVILEGES;
3. 配置文件安全加固(my.cnf)
编辑 MySQL 主配置文件(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf),增强安全性:
- 绑定监听地址:若非必要,将 bind-address 设为 127.0.0.1,禁止外部网络访问。
- 关闭不必要的功能:如 symbolic-links=0 防止符号链接攻击。
- 启用日志审计(如支持):开启 general_log 或使用企业版审计插件记录操作行为。
- 设置错误日志路径:log-error=/var/log/mysql/error.log,便于监控异常登录。
重要配置项:
[mysqld]
bind-address = 127.0.0.1
symbolic-links = 0
skip-show-database # 防止普通用户查看所有数据库列表
log-error = /var/log/mysql/error.log
4. 文件系统与进程权限控制
确保 MySQL 相关文件和目录权限合理:
- 数据目录(如 /var/lib/mysql)属主应为 mysql:mysql,权限设为 750。
- 配置文件 my.cnf 权限设为 640,避免普通用户读取密码信息。
- MySQL 进程以专用 mysql 用户运行,禁止使用 root 启动 mysqld。
chown -R mysql:mysql /var/lib/mysql
chmod 640 /etc/my.cnf
5. 定期备份与访问控制
离线环境恢复困难,必须建立本地备份机制:
- 使用 mysqldump 定期备份关键数据库,并加密存储。
- 限制对备份文件的访问权限,仅授权人员可读。
- 物理服务器应设置 BIOS 和 GRUB 引导密码,防止绕过系统认证。
基本上就这些。离线环境虽然隔绝外网风险,但内部威胁不容忽视。从用户权限、配置加固到文件保护,每一步都需落实到位,才能真正提升 MySQL 的安全性。










