mysql环境搭建完成后如何创建用户_mysql用户初始化

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@2025';
  • 授予权限(例如只对 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