首先设置root强密码并查找临时密码,然后配置远程访问权限时限制IP,接着创建最小权限的业务用户,最后删除匿名用户和测试数据库以加固安全。

在搭建 mysql 环境时,初始用户和权限的设置是保障数据库安全运行的关键步骤。MySQL 在首次安装后会生成一个默认的超级用户(通常是 root),但需要合理配置其访问权限,并建议创建专用业务用户来避免滥用高权限账户。
初始化 root 用户密码
MySQL 5.7 及以上版本在安装完成后会为 root 用户生成一个临时密码,可以在日志文件中找到:
使用该临时密码登录 MySQL 后,立即修改密码:
若未生成临时密码,可跳过认证进入并重置:
- 停止 MySQL 服务:sudo systemctl stop mysqld
- 启动跳过权限检查:mysqld –skip-grant-tables &
- 连接后执行更新密码语句,再重启正常服务
配置远程访问权限
默认情况下,root 用户只能从本地连接。如需远程管理,应谨慎授权:
CREATE USER 'root'@'%' IDENTIFIED BY 'YourStrongPassword123!';<br>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;<br>FLUSH PRIVILEGES;
注意:‘%’ 表示允许从任意 IP 连接,生产环境建议限定具体 IP 地址以提升安全性。
创建专用业务用户
不推荐直接使用 root 账户连接应用。应为每个应用创建独立用户并分配最小必要权限:
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'AppSecurePass2024!';<br>GRANT select, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'localhost';<br>FLUSH PRIVILEGES;
如果应用服务器与数据库分离:
CREATE USER 'app_user'@'192.168.1.100' IDENTIFIED BY 'AppSecurePass2024!';<br>GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'192.168.1.100';
安全加固建议
完成基础设置后,执行以下操作增强安全性:
- 删除匿名用户:DROP USER IF EXISTS ”@’localhost’;
- 移除测试数据库:DROP database IF EXISTS test;
- 禁止 root 远程登录(除非必须):DROP USER IF EXISTS ‘root’@’%’;
- 定期审查权限:SELECT User, Host FROM mysql.user;
可通过运行 mysql_secure_installation 脚本自动完成上述部分操作。
基本上就这些。关键是初始化强密码、限制高权限账户的使用范围,并遵循最小权限原则为应用分配专用账号。这样既能满足功能需求,又能有效降低安全风险。


