码迷,mamicode.com
首页 > 数据库 > 详细

MySQL重置密码

时间:2018-01-25 16:50:23      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:退出   root用户   cat   sql命令   不用   for   删除   登录   账户   

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 root@localhost = 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重置密码

标签:退出   root用户   cat   sql命令   不用   for   删除   登录   账户   

原文地址:https://www.cnblogs.com/sungeng/p/8351630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!