mysql5忘记root密码的两种解决方法(for windows)

本文提供了一种方法,通过命令行在不使用图形界面的情况下重置MySQL数据库系统的根用户密码,包括使用批处理文件、安全模式、修改用户密码、刷新权限表等步骤。
方法一: 

1、在DOS窗口下输入net stop mysql5net stop mysql 

2、开一个DOS窗口,这个需要切换到mysql的bin目录。
一般在bin目录里面创建一个批处理1.bat,内容是cmd.exe运行一下即可就切换到当前目录,然后输入
mysqld-nt --skip-grant-tables; 

3、再开一个DOS窗口,mysql -u root 


4、输入: 
复制代码 代码如下:

use mysql 
update user set password=password("new_pass") where user="root"; 
flush privileges; 
exit 



5、使用任务管理器,找到mysqld-nt的进程,结束进程 


或下面的步骤


1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 


2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\MySQL Server 5.0\bin 
示范命令: 
输入 e:回车, 
输入cd "E:\Program Files\MySQL\MySQL Server 5.0\bin" 

注意双引号也要输入,这样就可以进入Mysql安装目录了. 


3,进入mysql安全模式,即当mysql起来后,不用输入密码就能进入数据库。 

命令为: mysqld-nt --skip-grant-tables 


4,重新打开一个CMD命令行窗口,输入mysql -uroot -p,使用空密码的方式登录MySQL(不用输入密码,直接按回车) 


5,输入以下命令开始修改root用户的密码(注意:命令中mysql.user中间有个“点”) 

mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; 


6,刷新权限表 

mysql> flush privileges; 


7,退出 
mysql> quit 
这样MYSQL超级管理员账号 ROOT已经重新设置好了,接下来 在任务管理器里结束掉 mysql-nt.exe 这个进程,重新启动MYSQL即可!(也可以直接重新启动服务器) 
MYSQL重新启动后,就可以用新设置的ROOT密码登陆MYSQL了! 




方法二: 


首先在 MySQL的安装目录下 新建一个pwdhf.txt, 输入文本:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('*****'); 

红色部份为 需要设置的新密码 


用windows服务管理工具或任务管理器来停止MySQL服务 (任务管理器K掉 mysqld-nt 进程) 


Dos命令提示符到 MySQL安装目录下的bin目录 如我的是 D:\Program Files\MySQL\MySQL Server 5.1\bin 

然后运行: mysqld-nt --init-file=../pwdhf.txt 


执行完毕 停止MySQL数据库服务 (任务管理器K掉 mysqld-nt 进程),然后再重新以正常模式启动MYSQL 即可
<think> 我们正在处理用户的问题:如何在Windows系统中查看MySQL 8.0的root账户密码。 根据引用内容,我们知道MySQL 8.0在安装时会生成一个临时密码(对于Windows安装,通常位于错误日志文件中),或者如果已经修改过密码,则密码是加密存储的,无法直接查看。 但是,用户可能指的是以下两种情况之一: 1. 安装后初始密码的查看方法(因为MySQL 8.0在安装过程中会生成一个临时密码) 2. 忘记root密码后如何重置(因为无法直接查看已设置的密码,只能重置) 根据引用内容,我们可以总结: 引用[1]:提到MySQL8重置root账户密码的教程,说明root密码忘记后需要重置。 引用[2]:在Windows10下重置MySQL8.0的root密码,通过跳过授权表启动服务,然后修改密码。 引用[3]:同样提到在Windows下安装MySQL8.0后,初始登录可能会遇到错误,需要跳过权限表启动来重置密码。 引用[4]:修改密码后依然无法登录的问题,可能是由于认证插件的问题。 引用[5]:在Windows环境下修改MySQL8.0密码的步骤,涉及使用服务名称和配置文件路径。 因此,用户询问的“查看”root账户密码,实际上可能是指如何获取初始密码或重置密码(因为密码是加密存储的,无法直接查看明文)。 所以,我们给出两种情况的解答: 情况一:查看初始临时密码(仅适用于首次安装后尚未修改密码的情况) 情况二:重置密码(适用于忘记密码的情况) 注意:由于安全原因,MySQL不会存储明文密码,因此无法直接查看已设置的密码。我们只能重置它。 步骤: 情况一:查看初始临时密码(适用于首次安装后) 1. 在MySQL安装过程中,初始密码通常会被记录在错误日志文件中。 2. 错误日志文件的位置通常位于数据目录(data directory)下,文件名类似`DESKTOP-XXX.err`(其中`DESKTOP-XXX`是计算机名)或`mysql.err`。 3. 也可以通过MySQL的配置文件`my.ini`(通常位于`C:\ProgramData\MySQL\MySQL Server 8.0\`)中查找`log-error`选项指定的路径。 情况二:重置root密码(适用于忘记密码的情况) 参考引用[2][3][5]的方法,步骤如下: 1. 停止MySQL服务: 以管理员身份运行命令提示符,输入: net stop mysql 注意:如果服务名不是mysql,请使用实际的服务名(如MySQL80)。 2. 跳过授权表启动MySQL服务: mysqld --console --skip-grant-tables --shared-memory 此命令会保持运行,不要关闭此窗口。 3. 打开一个新的命令提示符(管理员身份),登录MySQL(无需密码): mysql -u root 4. 在MySQL命令行中,先清空root密码(注意:MySQL8.0需要先清空密码,然后才能修改): USE mysql; UPDATE user SET authentication_string='' WHERE user='root'; 5. 退出MySQL,然后关闭第一个命令提示符窗口(即停止跳过授权表的服务)。 6. 正常启动MySQL服务: net start mysql # 或你的服务名 7. 再次登录MySQL(此时不需要密码): mysql -u root 8. 修改root密码(注意:MySQL8.0修改密码的语句有变化): ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; 注意:如果遇到认证插件的问题(如引用[3][4]提到),可以在修改密码时指定使用旧的认证方式: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'; 9. 刷新权限: FLUSH PRIVILEGES; 但是,根据引用[4]提到,修改密码后可能依然无法登录,可能是由于认证插件不匹配。所以,在步骤8中指定认证插件可以避免这个问题。 综上所述,用户无法直接查看已设置的root密码,只能重置。如果是初始安装,可以查看错误日志获取临时密码。 因此,回答将分为两部分: 第一部分:如何获取初始安装时的临时密码 第二部分:如何重置root密码 同时,我们生成相关问题。 </think>### Windows 系统查看 MySQL 8.0 root 密码方法Windows 系统中,MySQL 8.0 的 root 密码无法直接查看明文(基于安全设计),但可以通过以下两种方式获取或重置: #### 方法一:查找初始安装临时密码(仅首次安装有效) 1. **打开错误日志文件** MySQL 安装时生成的初始密码会记录在错误日志中: ```cmd :: 路径可能因安装位置不同而变化 notepad "C:\ProgramData\MySQL\MySQL Server 8.0\Data\<计算机名>.err" ``` 2. **搜索临时密码** 在日志文件中查找包含以下关键字的行: ``` [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 5e!fGg?hDjiK ``` `5e!fGg?hDjiK` 即为初始临时密码[^1][^3]。 #### 方法二:重置 root 密码忘记密码时) 1. **停止 MySQL 服务** ```cmd net stop mysql80 :: 服务名可能是mysqlmysql80 ``` 2. **跳过权限验证启动** ```cmd mysqld --console --skip-grant-tables --shared-memory ``` 3. **新窗口登录 MySQL(无需密码)** ```cmd mysql -u root ``` 4. **清空并重置密码** ```sql USE mysql; -- 清空当前密码 UPDATE user SET authentication_string='' WHERE user='root'; FLUSH PRIVILEGES; EXIT; ``` 5. **重启服务并设置新密码** ```cmd :: 关闭跳过验证的窗口,然后重启服务 net start mysql80 mysql -u root -p -- 提示时直接回车 ``` ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; -- 如果遇到认证问题,改用旧版加密 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'; FLUSH PRIVILEGES; ``` > **重要说明**: > - MySQL 8.0 使用 `caching_sha2_password` 加密,密码以密文存储在 `authentication_string` 字段[^3][^4] > - 生产环境建议创建独立账户替代 root 远程登录[^1] > - 重置后需检查配置文件 `my.ini` 中的认证插件设置 #### 验证密码是否生效 ```sql -- 登录后执行 SELECT user, host, plugin FROM mysql.user WHERE user='root'; ``` 正常应返回类似结果: ``` +------+-----------+-----------------------+ | user | host | plugin | +------+-----------+-----------------------+ | root | localhost | mysql_native_password | +------+-----------+-----------------------+ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值