一、提出问题
- 忘记MySQL登录密码,无法在Navicat里创建mysql连接
二、解决问题
(一)给MySQL设置环境变量
- 找到MySQL管理程序所在目录
(二)关闭正在运行的MySQL服务
- 目前,MySQL处于未启动状态
(三)跳过权限表认证,启动MySQL服务
- 在命令行窗口,执行命令:
mysqld --skip-grant-tables
- 报错没有
data
目录 - 将
C:\Program Files\MySQL\MySQL Server 5.7
目录下的Data
拷贝到C:\Program Files\MySQL\MySQL Server 5.7
然后再执行命令:mysqld --skip-grant-tables
(四)免密登录MySQL
- 新开一个命令行窗口,执行命令:
mysql
,我们会看到mysql>
提示符,再执行命令:show databases;
,可以看到里面有一个名叫mysql
的系统数据库
(五)修改root用户密码
- 打开系统数据库 - mysql
- 查看全部表,最后一个表 - user
- MySQL5.7的用户表没有
password
字段,取而代之的是authentication_string
- 执行命令:
select Host, User, authentication_string from user;
(认证字符串是加了密的) - 执行命令:
update user set authentication_string=password("903213") where user="root";
- 执行命令:
flush privileges;
,刷新权限 - 执行命令:
quit;
,退出MySQL命令行
(六)重新登录MySQL
- 执行命令:
mysql -uroot -p903213
(903213
是新设置的密码)
(七)在Navicat里创建mysql连接
- 输入新密码,测试连接