MySQL修改密码的多种方式和忘记密码时该如何操作

本文详细介绍在可以登录MySQL及忘记密码两种情况下重置MySQL密码的方法。包括使用SQL语句直接更改密码、通过mysqladmin工具修改、更新MySQL的user表记录及在跳过权限表的情况下重置密码等。

可以登录MySQL的情况下

方法1: 

语句: set password for 用户名@localhost = password('新密码');
例子:set password for root@localhost = password('666');

方法2:
语句:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p888 password 666

方法3:  
先键入语句: use mysql;

再输入修改语句: update user set password=password('666') where user='root' and host='localhost';

或者:update user set authentication_string=password('666') where user='root' and Host = 'localhost';(新版本)
最后输入: flush privileges;  进行刷新。 

忘记密码的情况

1. 关闭正在运行的MySQL服务。
2. 运行cmd,键入mysqld --skip-grant-tables 回车,启动MySQL服务的时候跳过权限表认证。或者在配置文件my.ini中的[mysqld]条目下添加skip-grant-tables,重启服务。
3. 再重新运行一个cmd,键入mysql,回车,若成功将出现MySQL提示符 >。 
4.  键入use mysql,连接权限数据库。

5. 输入修改密码语句

    update user set password=password('666') where user='root';

    或者update user set authentication_string=password('666') where user='root' and Host = 'localhost';(新版本)

6.  最后输入: flush privileges;  进行权限刷新。

7.  输入:quit,退出数据库 

     若修改了配置文件最后需删除原先添加的语句。

8. 重新运行cmd用新密码登录 (最好重启服务)

9.输入:alter user 'root'@'localhost' identified by '666';

10.输入quit退出再重新登录





MySQL 中,如果用户忘记了 root 密码,可以通过多种方式来重置密码。以下是三种常用的方法,适用于不同场景下的密码恢复与修改。 ### 一、使用 `--init-file` 启动选项重置密码 此方法通过创建一个包含密码更改语句的初始化文件,并在启动 MySQL 加载该文件来实现密码重置。 1. 停止当前运行的 MySQL 服务。 2. 创建一个文本文件(例如 `mysql-init.txt`),并在其中写入以下 SQL 语句: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 3. 设置该文件的权限为仅限数据库管理员访问,以提高安全性。 4. 使用 `--init-file` 参数启动 MySQL 服务,命令如下: ``` mysqld --init-file=/path/to/mysql-init.txt & ``` 5. 启动完成后,使用新密码连接测试是否成功。 6. 停止通过 `--init-file` 启动的 MySQL 进程,并重新以正常方式启动 MySQL 服务[^1]。 ### 二、使用 `--skip-grant-tables` 参数跳过授权验证 这种方法允许用户无需密码即可登录到 MySQL,从而可以更改密码。 1. 停止正在运行的 MySQL 服务。 2. 使用 `--skip-grant-tables` 参数启动 MySQL 服务,命令如下: ``` mysqld --skip-grant-tables & ``` 3. 或者,在 MySQL 的配置文件 `my.cnf` 中添加 `skip-grant-tables` 参数后重启 MySQL 服务。 4. 登录 MySQL 不需要输入密码。 5. 在 MySQL 命令行中执行以下 SQL 语句来更改 root 用户的密码: ```sql FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 6. 移除或注释掉 `my.cnf` 文件中的 `skip-grant-tables` 参数,并重启 MySQL 服务恢复正常操作[^1]。 ### 三、直接更新 mysql.user 表 这种技术手段较为直接,但要求对数据库结构有一定了解。 1. 停止 MySQL 服务。 2. 启动 MySQL 加上 `--skip-grant-tables` 参数以便于无密码登录。 3. 登录到 MySQL 并选择 `mysql` 数据库。 4. 执行以下 SQL 语句来更新 root 用户的密码: ```sql UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; ``` 5. 正常重启 MySQL 服务[^2]。 每种方法都有其适用场景注意事项,请根据实际情况选择最合适的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值