mysql忘记密码的解决办法

本文介绍两种重置MySQL root用户密码的方法:一是通过修改配置文件并重启服务;二是利用安全模式临时禁用权限检查来直接更新密码。同时解决密码策略问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种办法:修改配置文件

1.修改配置文件/etc/my.cnf

在【mysqld】添加一行

skip-grant-tables


2.重启mysqld服务

[root@mysql-server ~]# service mysqld restart

3.登录数据库

[root@mysql-server ~]# mysql
修改root用户密码:

mysql> update mysql.user set authentication_string=password('redhat') where user='root' and Host = 'localhost';
重启数据库:

[root@mysql-server ~]# service mysqld restart

4.用root用户登录数据库

[root@mysql-server ~]# mysql -uroot -p

第二种办法:在命令行上进行修改


1.关闭mysqld服务

[root@mysql1 ~]# service mysqld stop

2.进入数据库的安全模式,此时不需要输入密码

[root@mysql1 ~]# mysqld_safe --skip-grant-tables &
若为了安全则可执行下面这条命令,这样就不会被远程连接:

[root@mysql1 ~]# mysqld_safe --skip-grant-tables --skip-networking &

3.登录数据库修改密码

[root@mysql1 ~]# mysql
mysql> update mysql.user set authentication_string=password('redhat') where user='root' and Host = 'localhost';


4.重启服务
[root@mysql1 ~]# service mysql restart

此时就可以用新密码重新登录了



重新登录之后,任意输入一个命令,会出现下面的情况:

mysql> select version();
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

我们按他说的做:

mysql> alter user 'root'@'localhost' identified by 'redhat';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

出现了这个错,我们需要修改的密码规则:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user 'root'@'localhost' identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值