MySQL安装后需用日志中临时密码登录并修改root密码,再创建最小权限的普通用户(如app_user@localhost),授权后禁用root远程访问以保障安全。

MySQL 安装并启动服务后,需要手动创建普通用户(非 root),因为默认仅保留 root@localhost,且新版本(如 8.0+)不再自动创建空密码 root 用户,首次登录需用初始化密码或跳过验证方式进入。
查看并获取 root 初始化密码(适用于 MySQL 5.7+ / 8.0 默认安装)
安装过程中,MySQL 会自动生成一个临时 root 密码,记录在错误日志中:
- Linux 常见路径:
/var/log/mysqld.log或/var/log/mysql/error.log - 执行命令查找:
sudo grep 'temporary password' /var/log/mysqld.log - 输出类似:
A temporary password is generated for root@localhost: aB3#xY9!mQpL,后面即为初始密码
首次登录并修改 root 密码(必须先完成)
使用初始密码登录(若失败,确认 mysqld 是否运行:systemctl status mysqld):
-
mysql -u root -p→ 输入上一步获取的临时密码 - 登录后立即修改密码(MySQL 8.0 要求强密码策略):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!'; - 刷新权限:
FLUSH PRIVILEGES;
创建新用户并授权(推荐最小权限原则)
避免长期使用 root 连接应用,应为每个业务创建独立用户:
- 创建用户(指定主机范围,
'user1'@'localhost'仅本机,'user1'@'%'允许远程):CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'AppPass@2024'; - 授予权限(例如只对
mydb库有全部操作权):GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'localhost'; - 生效权限:
FLUSH PRIVILEGES; - 验证:退出后用新用户登录测试:
mysql -u app_user -p -D mydb
可选:禁用 root 远程登录(提升安全性)
生产环境建议限制 root 只能本地管理:
- 撤销远程 root 权限(如果存在):
DROP USER 'root'@'%'; - 确保仅保留:
SELECT User, Host FROM mysql.user;中显示root | localhost










