MySQL 8.0 忘记密码 或 重置密码

Posted by Amy Sang & Daniel on June 2, 2022

笔者多年前曾遇到过这个问题,并在CSDN上写过文章。考虑到这个问题,笔者曾经为止困扰许久,且网络上的资料大多过时(仍然是针对MySQL5.7版本),遂今天数据库原理课下课后,做了重新整理,并发表在自己的博客上。

MySQL初始化

Linux-以Ubuntu为例

我在ubuntu20.04系统下使用apt安装的mysql8.0,安装时未提示设置root用户密码。(如果遇到提示,那么就按照提示设置初始密码即可)

使用命令sudo cat /etc/mysql/debian.cnf 查看mysql的默认密码 image

password后面的可以复制下来,这就是root账号的密码。

登陆成功。接下来修改密码。MySQL8.0有个新功能将原有5.7中的某个命令取消了而增强了安全性。

接下来使用命令alter user 'root'@'localhost' identified with mysql_native_password by '123456'

将root用户的密码修改成123456。这里还可以修改成其他密码。

已经修改完成。接下来可以用新密码登陆了。

Windows如何初始化

一般而言,安装过程中会提示设置密码。但在实际过程中,也有安装过程中未设置密码的情况。对此,可以用管理员身份打开cmd,在相关目录下,输入以下命令

设置为空密码: mysqld --initialize-insecure

自主设置密码: mysqld --initialize

重置密码

windows与linux系统上的MySQL重置密码方式都比较相似。MySQL8.0引入了新的安全机制,废除了password()函数。使用命令alter user 'root'@'localhost' identified with mysql_native_password by '123456'

将root用户的密码修改成123456。这里还可以修改成其他密码。

忘记密码

通过命令 mysqld --skip-grant-tables 跳过,并重新登录。