mysql密码修改与密码丢失的解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MBuger/article/details/78161399

密码的修改

方法一:命令行中修改

mysqladmin -uroot -p password 'your_password'

方法二:进入mysql命令行用sql语句进行修改
这种方法适合于不记得root密码之后进行修改。
注意这里需使用password()函数加密,这是因为mysql的用户表中存放的密码是经过加密的,登录时输入的也是要经过转换为密文与用户表中存放的密码。所以修改密码时也需要使用password()转换密文再放进表中。

updata mysql.user set password=password("your_password") where user='root' and host='localhost';

这里要注意mysql 5.7之后的版本把密码字段password改为了authentication_string;

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

另外进入mysql中修改密码之后要刷新权限。

flush privileges;

方法三:进入mysql使用set直接修改

set authentication_string=password(your_password);
flush privileges;

密码丢失的解决

密码丢失后找回密码首先需要关掉mysql服务

/etc/init.d/mysqld stop

接着使用跳过授权表的方式登录mysql并修改密码,此方法适用于mysql5.7.18以上版本。

1.进入mysql目录
cd /etc/mysql/mysql.conf.d
2.编辑目录下的mysqld.cnf,在它的[mysqld]下的选项中加上一行
skip-grant-tables=1
3.重启mysql服务
/etc/init.d/mysql restart
4.接下来就可以无密码登录mysql
mysql -uroot
5.使用上面的第二种方法修改密码
update mysql.user set authentication_string=password("your_password") where user='root' and host='localhost';
6.刷新权限
flush privileges
7.记得删去配置文件中刚刚加上的那一行参数。

猜你喜欢

转载自blog.csdn.net/MBuger/article/details/78161399