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
