运行安全初始化脚本:执行 sudo mysql_secure_installation,依次完成设置 root 强密码、删除匿名用户、禁止 root 远程登录、删除 test 数据库、刷新权限表。
检查并调整 root 认证方式:Ubuntu 常见为 auth_socket,若需密码登录可执行
SELECT user,plugin,host FROM mysql.user;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘强密码’;
FLUSH PRIVILEGES;
需要远程访问时:将 bind-address 改为 0.0.0.0(或注释掉该行),并仅为特定来源 IP 创建账户(如 ‘app’@‘192.168.1.%’),避免使用 ‘%’ 通配。
防火墙策略:仅放行必要来源与端口,例如 UFW 放行 3306 且仅对受控网段开放。
加固项:禁用本地文件导入风险(如 local-infile=0),并限制 SHOW DATABASES(如 skip-show-database)。
三 加密与认证
启用传输加密(SSL/TLS):在 [mysqld] 配置 ssl-ca /path/ca.pem、ssl-cert /path/server-cert.pem、ssl-key /path/server-key.pem,重启后在 MySQL 内用 SHOW VARIABLES LIKE ‘%ssl%’; 验证。