软件名称

版本

安装路径

下载地址

mysql

8.0

C:\Program Files\MySQL\MySQL Server 8.0\

官网社区版

前情摘要:有时经常会因为多项目开发或者是修改密码后忘记密码,mysql8.0版本与5.0+版本忘记密码的修改方法稍有不同。之前的博客中已经提供mysql5.0+版本的密码修改方法,此处不在赘述。

操作步骤如下:

1. 停止mysql80(名称应与安装mysql时的一致)服务

net stop mysql80

2. 进入mysql安装目录的bin文件中,以管理员的方式运行cmd,然后输入如下命令,实现无密码登陆

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

3. 以空密码登入系统

mysql -u root

4. 重置密码

UPDATE mysql.user SET authentication_string='root' WHERE user='root' and host='localhost';

此处authentication_string为密码字段,未加密文本,请注意。

5. 数据库密码加密方修改

# 数据库密码加密规则还原成mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
# 刷新权限
FLUSH PRIVILEGES;
# 再查询用户及加密方式已修改
select host, user, plugin from user;

6. 重启mysql80服务。

到此结束。

附加内容:

远程navicat mysql登陆

FAQ:

1. 安装mysql或者是执行第二步骤出现以下问题的解决

解决方法:

在mysql的安装目录bin下使用管理员权限执行:

mysqld --initialize-insecure

执行成功后的结果:会自动在安装目录下生成一个与bin同级的目录data,标识已经成功创建。

2. 修改密码后出现无效密码问题

使用 

mysql -u root -p

无法登陆

解决方法:

use mysql;
update user set authentication_string='' where user='root';// 如果这个字段有值,先置为空,之前的版本密码字段是password
flush privileges;                                          // 刷新权限表
执行select user,host from user;                            // 查看用户及host,方便后续修改
ALTER user 'root'@'localhost' IDENTIFIED BY '你的密码';    // 修改root 密码
exit;                                                     //退出mysql

3. navicat mysql 远程连接错误

说明密码正确,但是无法远程登录。

原因:
由于mysql8之前的版本中加密规则是 mysql_native_password,而在 mysql8 之后,加密规则是caching_sha2_password。

解决方法:
1.升级 navicat 驱动;
2.把 mysql 用户登录密码加密规则还原成 mysql_native_password。如果用的是破解版的 navicat,则只能用这种办法解决。

步骤如下:
#### 1) 首先以管理员身份运行 cmd,然后使用命令进入 mysql

`mysql -u root -p`

输入密码登录至mysql控制台。

出现环境变量设置问题请自行解决,此处暂不提供方法。

#### 2) 更改加密方式
`ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;`
  
#### 3) 更改密码——由于加密规则更改,所以需要重置密码
`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';`

#### 4) 刷新数据库
`FLUSH PRIVILEGES;`

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐