mysql8.0在初始化完成之后,会自动生成一个临时的初始密码,这个密码默认存储在mysql的运行日志文件mysqld.log中,我们可以通过grep命令快速定位到对应的密码信息。
查看mysqld.log日志文件位置
不同安装方式下mysqld.log的默认路径存在差异,常见的路径如下:
- rpm包安装:/var/log/mysqld.log
- 二进制包安装:安装目录下的data/mysqld.log
- 源码编译安装:配置时指定的日志目录下的mysqld.log
如果不确定日志文件的具体位置,可以查看mysql的配置文件my.cnf,找到log-error配置项对应的路径,该路径就是mysqld.log的完整地址。
使用grep搜索初始密码
mysql8.0的初始密码在日志中会以固定格式记录,通常包含temporary password关键字,我们可以使用grep命令直接搜索这个关键字来定位密码。
基础搜索命令
执行以下命令即可搜索到初始密码:
# 替换为实际的mysqld.log路径 grep "temporary password" /var/log/mysqld.log
命令执行后,输出的内容中最后一部分就是初始密码,例如输出root@localhost: Abc123!@#Def,其中Abc123!@#Def就是初始密码。
处理多个初始密码的情况
如果mysql服务多次初始化,日志中会出现多条初始密码记录,此时我们需要获取最后一次生成的密码,可以结合tail命令使用:
grep "temporary password" /var/log/mysqld.log | tail -1
验证初始密码并登录
获取到初始密码之后,我们可以使用以下命令登录mysql8.0:
mysql -u root -p
输入刚才获取到的初始密码即可完成登录,登录之后系统会强制要求修改密码,修改密码的sql语句如下:
-- 修改密码为自定义的新密码,需要符合mysql8.0的密码强度要求 ALTER USER "root"@"localhost" IDENTIFIED BY "NewPass123!";
常见问题说明
如果执行grep命令后没有输出结果,可能是以下原因导致:
- mysqld.log路径不正确,需要确认日志文件的实际位置
- mysql8.0初始化时未生成初始密码,这种情况可以跳过密码验证重新设置密码
- 日志文件被清理过,初始密码记录已经被删除
注意初始密码中的特殊字符容易被忽略,输入密码时需要仔细核对,避免因为输入错误导致登录失败。
mysql8.0初始密码mysqld.loggrep修改时间:2026-06-10 11:00:23