如何配置mysql初始root密码_mysql root密码设置方法

1次阅读

mysql 5.7+首次安装后需根据系统类型处理root登录:centos/RHEL查看临时密码,ubuntu/debian常需跳过权限验证重置;修改密码后可授权远程访问并调整密码策略。

如何配置mysql初始root密码_mysql root密码设置方法

MySQL 5.7 及以上版本在首次安装后默认没有设置 root 密码,而是采用 auth_socket 插件认证(Ubuntu/Debian 常见),或生成临时密码(CentOS/RHEL 常见)。直接用 mysql -u root -p 登录会失败。需先绕过权限验证,再修改密码。

查看或获取初始临时密码(适用于 CentOS/RHEL 安装)

安装完成后,MySQL 会在错误日志中生成一个临时 root 密码:

  • 执行:sudo grep 'temporary password' /var/log/mysqld.log
  • 输出类似:A temporary password is generated for root@localhost: aB3#xY9!mQ2p
  • 复制该密码,用 mysql -u root -p 登录,然后立即用 ALTER USER 修改

跳过权限验证重置密码(适用于无法登录或忘记密码)

当连临时密码都无效,或使用 auth_socket(如 Ubuntu 默认)导致无法用密码登录时,需临时跳过权限检查:

如何配置mysql初始root密码_mysql root密码设置方法

Text Mark

处理文本内容的AI助手

如何配置mysql初始root密码_mysql root密码设置方法 113

查看详情 如何配置mysql初始root密码_mysql root密码设置方法

  • 停止 MySQL:sudo systemctl stop mysql(Ubuntu)或 sudo systemctl stop mysqld(CentOS)
  • 以安全模式启动:sudo mysqld_safe --skip-grant-tables --skip-networking &
  • 另开终端,无密码登录:mysql -u root
  • 执行以下命令(MySQL 5.7+):
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
  • 退出并重启 MySQL 服务

设置密码后验证并允许远程访问(可选)

默认 root 只允许本地登录。若需远程连接,需额外授权:

  • 登录 MySQL 后执行:CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
  • 赋予全部权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  • 刷新权限:FLUSH PRIVILEGES;
  • 确保 MySQL 配置文件bind-address 不是 127.0.0.1(改为 0.0.0.0 或注释掉),并开放防火墙端口(如 3306)

常见问题提醒

密码策略可能导致设置失败(如太简单):

  • 查看策略:SHOW VARIABLES LIKE 'validate_password%';
  • 临时降低要求(测试环境):SET GLOBAL validate_password.policy=LOW;
  • 避免使用纯数字、常见单词;推荐大小写字母 + 数字 + 符号组合,长度 ≥8
  • 修改后务必重启服务或执行 FLUSH PRIVILEGES; 生效

text=ZqhQzanResources