window下 mysql密码忘记

本文详细介绍了如何通过修改MySQL配置文件跳过权限检查,重置root账户密码,并更新了与密码相关的列名,确保数据库的安全性。适用于遇到密码忘记或过期问题的管理员。

1.打开MySQL配置文件 my.ini中,添加上skip-grant-tables,可以添加到文件的末尾或者是这添加到[mysqld]的下面。

2.重启mysql

3.这时登录MySQL不再需要验证

切换到mysql系统库:
mysql> use mysql;

修改root账户登录密码:
mysql> update user set password=password('') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
---报错没有password这个数据字段列

描述user表
mysql> desc user;
...
| authentication_string  | text                              | YES  |     | NULL                  |       |
| password_expired       | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
| account_locked         | enum('N','Y')                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
---没发现password列,但是找到这5个跟密码相关的数据字段

查询一下相关的密码信息:
mysql> select user,host,authentication_string,password_expired from user;
+-----------+-----------+-------------------------------------------+------------------+
| user      | host      | authentication_string                     | password_expired |
+-----------+-----------+-------------------------------------------+------------------+
| root      | localhost | *9AA01F6E2A80A823ACB72CC07337E2911404B5B8 | Y                |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | N                |
+-----------+-----------+-------------------------------------------+------------------+
---到这里不难发现root账户的密码已过期,还比5.6多出了一个mysql.sys用户

修改密码
mysql> update user set authentication_string=password('123abc') where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit

转载于:https://www.cnblogs.com/weizaiyes/p/7871628.html

### 在 Windows 上重置 MySQL 的 root 密码Windows 系统上重置 MySQL 的 root 密码可以通过以下方法实现。以下是详细的操作说明: #### 1. 停止 MySQL 服务 首先需要停止正在运行的 MySQL 服务,以确保可以安全地进行密码重置操作。可以通过以下命令来停止 MySQL 服务: ```cmd net stop MySQL ``` #### 2. 使用 `--skip-grant-tables` 启动 MySQL 使用 `--skip-grant-tables` 参数启动 MySQL 服务,这样可以绕过权限验证机制。根据提供的引用内容[^2]和[^3],可以执行以下命令: ```cmd mysqld --defaults-file="E:\software\work\SQL\SQLData\MySQL Server 8.0\my.ini" --shared-memory --skip-grant-tables ``` 注意:需要将路径替换为实际的 MySQL 配置文件路径。 #### 3. 登录 MySQL 并修改密码 启动 MySQL 服务后,可以无需密码登录 MySQL 客户端。执行以下命令登录 MySQL: ```cmd mysql -u root ``` 进入 MySQL 客户端后,可以使用以下 SQL 命令来重置 root 用户的密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'; FLUSH PRIVILEGES; ``` 如果上述命令无法执行,则可以尝试以下替代命令[^4]: ```sql UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; ``` 请确保将 `NewPassword` 替换为你想要设置的新密码。 #### 4. 退出 MySQL 客户端 完成密码修改后,退出 MySQL 客户端: ```sql EXIT; ``` #### 5. 重启 MySQL 服务 最后,重新启动 MySQL 服务以使更改生效。可以通过以下命令重启 MySQL 服务: ```cmd net stop MySQL net start MySQL ``` ### 注意事项 - 如果在操作过程中遇到任何错误,请检查 MySQL 配置文件路径是否正确,并确保 MySQL 服务已完全停止。 - 修改密码时,建议使用强密码策略以提高安全性。 ```python # 示例代码块(非必要) print("MySQL root 密码已成功重置") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值