window mysql忘记密码解决方案

1、以管理员身份运行​​命令行​​工具(必须是管理员身份)

2、停止mysql

net stop mysql

3、启动mysql(不输入密码方式启动)

mysqld --console --skip-grant-tables --shared-memory

4、之前的命令行不能关闭,在安装的mysql的bin目录中,重新打开命令行,进入mysql,然后修改密码

输入:mysql -u root直接连续回车
mysql> use mysql;
 mysql> flush privileges;
 mysql> alter user ‘root’@'localhost’IDENTIFIED BY ‘新密码’;
 mysql> flush privileges;

5、管理员运行的命令行关闭,然后正常启动mysql

net start mysql

6、正常输入mysql -u root进入mysql即可。

### 如何在 Windows 上重置或查看忘记MySQL 密码 #### 跳过权限验证模式重置密码 一种常见的方法是以跳过权限验证的方式启动 MySQL 服务,从而允许无密码访问数据库并重新设置密码。具体操作如下: 1. 停止当前正在运行的 MySQL 服务: ```cmd net stop mysql ``` 2. 使用 `--skip-grant-tables` 参数以跳过权限表方式启动 MySQL 服务: ```cmd mysqld --skip-grant-tables ``` 此命令会绕过用户的认证过程,因此可以无需密码登录到 MySQL 数据库[^1]。 3. 打开一个新的 CMD 窗口,并通过以下命令连接到 MySQL: ```cmd mysql -u root ``` 4. 登录成功后,在 MySQL 提示符下执行 SQL 查询更新用户密码: ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` 这里需要注意的是,`authentication_string` 是存储密码的字段名称,而 `PASSWORD()` 函数可能因版本不同有所变化。对于较新的 MySQL 版本(8.x),推荐使用 `ALTER USER` 来更改密码[^3]。 5. 关闭跳过权限验证模式下的 MySQL 实例,重启正常的服务实例: ```cmd net start mysql ``` #### 设置新密码的方法 另一种简单的方式来恢复密码是在管理员权限的 CMD 下完成一系列指令操作。以下是具体的流程描述: 1. 首先停止现有的 MySQL 服务: ```cmd net stop mysql ``` 2. 启动 MySQL 服务而不加载授权表数据: ```cmd mysqld_safe --skip-grant-tables & ``` 3. 接下来打开另一个 CMD 窗口,尝试直接进入 MySQL 控制台: ```cmd mysql -u root ``` 4. 修改根用户的密码为指定的新值: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; EXIT; ``` 5. 终止特殊模式下的 MySQL 服务器进程,再按照常规途径激活它: ```cmd net start mysql ``` 以上两种方案均能有效解决遗忘密码的问题[^2]。 ```python import subprocess def reset_mysql_password(): try: # Stop the service subprocess.run(['net', 'stop', 'mysql'], check=True) # Start with skip grant tables (in another terminal or script) subprocess.Popen(['mysqld', '--skip-grant-tables']) # Connect to MySQL and change password via a separate command line session. new_pwd_command = ['mysql', '-uroot'] # Example of changing pwd inside Python using pymysql library, not recommended directly here due to complexity. import pymysql.cursors connection = pymysql.connect(host='localhost', user='root', cursorclass=pymysql.cursors.DictCursor) with connection.cursor() as cursor: sql_update_query = "UPDATE mysql.user SET authentication_string=PASSWORD(%s) WHERE User='root';" cursor.execute(sql_update_query, ('newpassword')) flush_privileges_sql = "FLUSH PRIVILEGES;" cursor.execute(flush_privileges_sql) connection.commit() connection.close() # Restart normal mode after successful update. subprocess.run(['net', 'start', 'mysql'], check=True) except Exception as e: print(e) reset_mysql_password() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值