MySQL重置密码

Posted sungeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL重置密码相关的知识,希望对你有一定的参考价值。

mysql重置密码

可能由于各种原因,我们不小心丢掉了MySQL密码,要用的时候无法登陆了,只能重置密码了!该配置修改文档是在Linux Ubunt环境下进行的,其他操作系统亦可作为参考,原理一样!

1) 修改MySQL的配置文件,跳过登录时的权限验证

CentOS是在 /etc/my.cnf
Ubunt的mysql配置文件路径:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    #在[mysqld]下追加上 skip-grant-tables
    [mysqld]
        ...
    skip-grant-tables
    

2) 重启mysql服务使配置生效

sudo service mysql restart

3) 重启完mysql服务之后我们再次执行mysql登录命令,会发现不用输入密码即可登录.

mysql -u root -p
#回车完会提示输入密码,不用输密码直接回车即可登录

4) 重置root账户密码

#重置root密码为空
update mysql.user set authentication_string="" where user="root";   
#重置 root 用户的密码为空(5.7 之前为 password 字段)

#修改root密码
update mysql.user set authentication_string=password("pswd") where user="root";
#在重置 root 密码的同时,也可以设置默认密码。不过密码不能为明文,必须使用 password() 函数加密

5) 刷新权限表

flush privileges;

重置root密码,刷新权限表之后退出mysql命令行,将刚在配置文件中添加的跳过权限验证的配置命令删除.最后重启mysql服务即可用root用户密码登录!

6) 删除添加的跳过权限验证配置命令,重启mysql服务

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    #删除或注释刚才在[mysqld]下追加 skip-grant-tables
    [mysqld]
        ...
    #skip-grant-tables

重启mysql服务

sudo service mysql restart

出于安全考虑我们不会让MySQL用户无密码即可登录,要在重置完密码后为root账户设置密码

设置密码要把配置文件中的跳过权限验证命令去掉以后重启mysql服务登录设置才行,不然会提示没有验证,无权限操作

方法1:

以 root 身份登录 mysql后,再使用 set password 命令修改密码:
set password for [email protected] = password("new_password");

方法2:

mysqladmin -u root -p password "new_password"
#执行该命名后会提示输入原密码,输入正确后即可修改。

方法3:

update mysql.user set authentication_string=password("pswd") where user="root";
#在重置 root 密码的同时,也可以设置默认密码。不过密码不能为明文,必须使用 password() 函数加密

使用该方法之后需刷新权限列表:
flush privileges;

以上是关于MySQL重置密码的主要内容,如果未能解决你的问题,请参考以下文章

重置MySQL数据库root密码(linux/windows)

mysql重置密码,忘记密码,重置root密码,重置mysql密码

linux下mysql-5.6忘记root密码,重置root密码详细过程

重置mysql密码

mysql忘记密码后重置密码的方法(mysql 8.0.25重置密码)

重置mysql密码