mysql忘记密码如何处理以及三种修改密码的方式

mysql有时候会忘记密码,这就比较蛋疼了,首先我们先讲mysql如何修改密码(前提是知道旧密码),修改方式有如下三种:

1. 第一种(需要登录mysql)

语法:

set password for 用户@ip = password('密码');

例子:

set password for root@localhost = password('root');

但是我们发现报错如下:

主要原因是ip不对,我们使用

select user,host from mysql.user where user='root';

 命令查看能在哪台机器登录,发现是所有用户,但是ip必须要写成%

mysql忘记密码如何处理以及三种修改密码的方式_第1张图片

修改命令如下:

set password for 'root'@'%'=password('root1');

这样就可以了

2.第二种(不需要登录mysql)

语法:

mysqladmin -u用户 -p旧密码 password

例子:

mysqladmin -uroot -proot1 password

 这时候我们不需要登录mysql,测试如下:

输入命令之后需要输入新密码,以及再次确认密码,下面警告不用理会,这时候其实已经修改成功了。

3.第三种(需要登录mysql)

语法:

update mysql.user set authentication_string=password('密码') where user='用户' and host='ip';

我们先查出root用户的user信息,其中包括密码:

select * from mysql.user where user ='root'\G

如下图authentication_string就是加密后的密码(新版本),老版本是password字段 

mysql忘记密码如何处理以及三种修改密码的方式_第2张图片

例子: 

update mysql.user set authentication_string=password('root') where user='root' and host='%';

 注意:后面条件host=必须要加,因为可能root用户会限制几个ip登录,不加对应的ip那么会把所有的改掉。

以上三种方法,注意最好改完之后要使用

flush privileges;

命令刷新权限,不然可能会修改不成功

4.忘记密码如何修改

上面三种情况都是记得密码的情况下,在忘记密码的情况下我们修改如下:

1. 第一步:修改配置文件my.cnf (默认在/etc/my.cnf),在[mysqld]下面加上 skip-grant-tables (跳过权限的意

思)

mysql忘记密码如何处理以及三种修改密码的方式_第3张图片

2. 第二步:重启mysql服务(service mysql restart )

3. 第三步:mysql -uroot -p 无需密码登录进入

4. 第四步:修改密码

5.第五步: 再去my.cnf把那一行代码删掉,然后重启mysql服务就能用新密码登录了

 

你可能感兴趣的:(mysql)