CentOS 8安装mysql-server后无初始root密码无法登录怎么处理?
CentOS 8安装MySQL无初始root密码问题解答
可能的操作问题
- 未执行初始化流程直接启动服务:部分版本的MySQL安装完成后不会自动触发初始化,需要手动执行
mysqld --initialize命令完成初始化后再启动服务,才会生成随机初始密码。 - 安装的是MariaDB兼容包:CentOS 8默认软件源中部分
mysql-server包实际是MariaDB的兼容替代包,该包默认root初始密码为空,不会生成随机初始密码。 - MySQL 8.0版本初始化配置调整:新版MySQL如果初始化时关闭了密码校验组件,也不会生成随机初始密码,允许无密码本地登录。
初始密码默认存放位置
标准官方MySQL版本的初始随机密码默认存放在/var/log/mysqld.log日志文件中,执行以下命令可直接提取:
grep 'temporary password' /var/log/mysqld.log
如果执行命令无返回结果,可通过以下步骤重置root密码:
- 停止运行中的MySQL服务
systemctl stop mysqld
- 以跳过授权表模式启动MySQL
mysqld --skip-grant-tables --user=mysql &
- 无密码直接登录MySQL,执行密码重置命令
mysql -u root
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义的新密码';
- 退出MySQL终端,终止跳过授权表的MySQL进程,重启正常服务后即可用新密码登录。
内容的提问来源于stack exchange,提问作者PWith2
相关产品推荐
相关产品推荐

