
1、通过配置文件修改
mysql的配置文件一般存在/etc目录下,完整文件名为:/etc/my.cnf。
如果在/etc目录下没找到,或者你不确定配置文件存在哪里,可以用命令查找。
whereis命令来查找
# 终端命令行输入以下命令
$ whereis my.cnf
my: /etc/my.cnf
find命令来查找
# 终端命令行输入以下命令
$ find / -name my.cnf
/etc/my.cnf
接下来,我们打开my.cnf配置文件,在 [mysqld]下面添加语句:
skip-grant-tables
保存并关闭文件。
my.cnf配置文件修改完之后是不会自己生效的,我们要重启mysql服务,它才会生效。
在终端命令行输入以下命令来重启mysql服务:
systemctl restart mysql
也有可能是这个命令,这个要看你是怎么安装的:
systemctl restart mysqld
反正两个命令,一个不行,你换另外一个就可以了。
重启完之后,登录mysql并修改密码。
在终端命令行输入以下命令登录mysql:
mysql -uroot -p
直接回车,就登录进去了。
接着,输入sql语句修改密码。
先flush一下:
FLUSH PRIVILEGES;
输入修改密码的sql语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
这里,将new_password替换为你想要设置的新密码。
然后,退出:
QUIT;
密码改完了,在回到my.cnf配置文件这里,把前面添加的skip-grant-tables删除掉或注释掉,保存文件。
最后,再重启mysql服务:
systemctl restart mysqld
好了,现在可以使用新密码重新登录了。
2、使用安全模式重置密码
安全模式会跳过权限验证,我们可以以管理员身份登录数据库。在我们忘记了mysql密码的情况下,我们可以完全通过启动mysql的安全模式来重置密码。
接下来,我们在终端命令行中输入以下命令,来启动安全模式:
mysqld_safe --skip-grant-tables &
接着,同样,在终端命令行输入以下命令登录mysql:
mysql -uroot -p
直接回车,就登录进去了。
先flush一下:
FLUSH PRIVILEGES;
输入修改密码的sql语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
这里,将new_password替换为你想要设置的新密码。
然后,退出:
QUIT;
最后,同样再重启一下mysql服务:
systemctl restart mysqld
完事,现在也可以使用新密码重新登录了。