mysql安装后须完成安全与性能配置:修改root密码并禁用匿名用户、限制root远程访问并创建专用管理账号、启用密码策略、配置my.cnf关键参数(字符集、日志、连接数等)、运行mysql_secure_installation加固。

MySQL安装完成后,不能直接投入生产使用,需完成基础安全与性能配置。核心是修改默认设置、加固访问控制、调整关键参数,避免常见风险(如空密码、远程无限制访问、日志缺失等)。
修改root密码并禁用匿名用户
安装后root可能无密码或允许空密码登录,必须立即设置强密码,并清理安全隐患:
- 启动MySQL服务后,用mysql -u root -p登录(若无需密码,可先用sudo mysqld_safe --skip-grant-tables &临时跳过验证,再更新密码)
- 执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!';
- 删除匿名用户:DELETE FROM mysql.user WHERE User='';
- 刷新权限:FLUSH PRIVILEGES;
限制root远程访问,创建专用管理账号
root账号不应开放远程登录,应单独创建带限制的管理用户:
- 禁止root远程登录:DELETE FROM mysql.user WHERE User='root' AND Host!='localhost';
- 新建管理员账号(仅限内网IP):CREATE USER 'admin'@'192.168.1.%' IDENTIFIED BY 'AdminPass456!';
- 赋予必要权限(避免GRANT ALL):GRANT SELECT, INSERT, UPDATE, DELETE, PROCESS, REPLICATION CLIENT ON *.* TO 'admin'@'192.168.1.%';
- 启用密码策略(可选但推荐):INSTALL PLUGIN validate_password SONAME 'validate_password.so';
配置my.cnf关键参数(Linux下通常为/etc/my.cnf或/etc/mysql/my.cnf)
基础运行稳定性依赖合理配置,重点关注字符集、日志、连接与内存:
- [client]:添加default-character-set = utf8mb4
-
[mysqld]:
- character-set-server = utf8mb4(统一字符集,支持emoji)
- collation-server = utf8mb4_unicode_ci
- bind-address = 127.0.0.1(默认仅本地监听;如需内网访问,改为192.168.1.0/24对应网段IP)
- max_connections = 200(根据服务器内存调整,初始建议100–300)
- log-error = /var/log/mysql/error.log(确保错误日志路径存在且MySQL有写入权限)
- slow_query_log = ON,slow_query_log_file = /var/log/mysql/slow.log,long_query_time = 2(开启慢查询日志,便于后续优化)
- sql_mode = STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION(启用严格模式,避免隐式转换问题)
- 修改后重启服务:sudo systemctl restart mysql(或mysqld)
初始化数据库安全加固(mysql_secure_installation)
官方提供的交互式脚本,快速完成多项基础加固:
- 运行sudo mysql_secure_installation
- 按提示操作:设置root密码强度、删除匿名用户、禁止root远程登录、删除test库、重载权限表
- 即使已手动配置,也建议运行一次确保无遗漏(尤其在新装环境中)










