目录
场景1、配置文件在安装目录下
以下操作是配置了环境变量的全局操作,可直接打开 cmd 运行命令;
未配置环境变量,需以管理员身份运行 cmd 进入到 mysql 安装的 bin 目录下执行命令
(开始菜单 -- Windows 系统 -- 命令提示符 -- 右键 -- 更多 -- 以管理员身份运行)
1、开个管理员 cmd 窗口
2、停止mysql服务
net stop mysql
3、开启跳过密码验证登录的MySQL服务
mysqld --console --skip-grant-tables --shared-memory
4、另开个管理员 cmd 窗口
进入mysql服务
mysql
进入mysql数据库
use mysql;
5、进行密码更新
update user set password=password('新密码') where user='root' and host='localhost';
6、如上面报错:ERROR 1054 (42S22): Unknown column 'password' in 'field list',执行以下命令
update user set authentication_string=password('新密码') where user='root' and host='localhost';
7、关闭前面两个窗口,新开一个 cmd 窗口启动 mysql 服务
net start mysql
8、连接 mysql 用新密码测试登录
mysql -u root -p
场景2、配置文件在其它目录下
1、找到配置文件目录:C:\ProgramData\MySQL\MySQL Server 5.7
2、编辑配置文件 my.ini 在 [mysqld] 下面添加代码
skip-grant-tables
3、开一个管理员 cmd 窗口;进入到 mysql 安装目录的 bin 目录
4、重启 mysql 服务(MySQL57是服务名,填写自己的,可在任务管理器--服务--查看)
停止
net stop MySQL57
启动
net start MySQL57
或去服务手动重启 -- 右键 -- 重启服务
5、此时已无需密码登录,输入下面命令直接回车即可
mysql -u root -p
6、进入数据库
use mysql;
7、设置新密码
update user set authentication_string=password("这里写新密码") where user="root";
8、出现以下即修改成功
9、退出 mysql
quit
或
exit
10、重新编辑 my.ini 配置文件,把前面加入的“skip-grant-tables”去掉,保存,再重启 mysql 即可
end
参考:ERROR 1045 (28000): Access denied for user 'root'@'localhost' - SegmentFault 思否