MySQL 默认安全性弱,需从限制访问、最小权限、加密通信、日志审计四方面加固:修改root密码、禁用匿名用户、限制root远程访问、创建专用运维账号并授最小权限、启用密码策略与SSL加密、关闭LOCAL INFILE等危险功能、开启审计日志。

MySQL 默认安装后安全性较弱,必须手动加固。核心是限制访问、最小权限、加密通信和日志审计四个方向。
修改默认 root 密码并禁用空密码登录
安装后 root 用户常无密码或仅本地可登录,这是最大风险点。需立即设置强密码,并确认禁止匿名用户:
- 登录 MySQL 后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!';
- 删除匿名账户:DROP USER ''@'localhost';
- 刷新权限:FLUSH PRIVILEGES;
- 检查剩余用户:SELECT User, Host FROM mysql.user; 确保无空用户名或非必要远程 host(如 '%')
限制 root 远程访问,创建专用管理账号
root 不应从任意 IP 登录。生产环境建议只允许本地管理,远程操作使用带限制的专用账号:
- 禁止 root 远程登录:DELETE FROM mysql.user WHERE User='root' AND Host!='localhost';
- 新建运维账号(例如 admin_op),仅允许可信网段:CREATE USER 'admin_op'@'192.168.10.%' IDENTIFIED BY 'OpPass456!';
- 授予最小必要权限,例如仅 SELECT/INSERT/UPDATE/DELETE + SHOW VIEW:GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON *.* TO 'admin_op'@'192.168.10.%';
- 避免使用 GRANT ALL —— 特别是 FILE、SHUTDOWN、SUPER 等高危权限
启用强制密码策略与连接加密
防止弱口令被爆破,同时避免明文传输账号密码:
- 在 my.cnf 的 [mysqld] 段启用密码强度校验插件:validate_password.policy=STRONG,并设最低长度:validate_password.length=12
- 生成 SSL 证书(可自签)并配置:ssl-ca=/etc/mysql/ssl/ca.pem,ssl-cert=/etc/mysql/ssl/server-cert.pem,ssl-key=/etc/mysql/ssl/server-key.pem
- 强制客户端使用 SSL 连接:ALTER USER 'admin_op'@'192.168.10.%' REQUIRE SSL;
- 验证是否生效:SHOW VARIABLES LIKE '%ssl%'; 和 STATUS; 中查看 SSL 状态
关闭危险功能与启用审计日志
禁用非必要服务降低攻击面,记录关键操作便于追溯:
- 禁用 LOCAL INFILE(防文件读取漏洞):local_infile=OFF(my.cnf 中设置)
- 禁用符号链接支持(防路径穿越):symbolic-links=OFF
- 开启通用查询日志或错误日志详细级别(谨慎启用通用日志,因影响性能):log_error_verbosity=3
- 更推荐使用 MySQL Enterprise Audit 插件或 Percona Toolkit 的 pt-audit 工具做操作审计;社区版可结合 binlog + 定期审查 user 表变更
以上就是如何配置mysql基础安全策略_mysql基础安全配置指南的详细内容,更多请关注php中文网其它相关文章!