mysql8.0版本重置root密码

第一步:停掉mysql服务,可以使用win+r然后输入services.msc然后找到mysql的服务,将之关闭 第二步:win10前的系统,用系统管理员身份打开格式命令行,win10的请随意,然后输入

(8.0以前版本的请使用这个语句:mysqld --skip-grant-tables)
mysqld --console --skip-grant-tables --shared-memory

第三步:再打开一个格式命令行,权限请参照第二步,然后输入

mysql -u 用户名 -p

然后点击两下回车,发现进入mysql数据库 第四步:进入后选择一下名为mysql的数据库

use mysql;

第六步:刷新一下权限

flush privileges;

第七步:修改密码

(如果直接执行一下语句修改失败,请先执行这条语句:update user set authentication_string= where user=root)
ALTER user 需要修改密码的用户名@localhost IDENTIFIED BY 重置的密码

第七步(8.0之前的版本):

MySQL 8.0前的版本,直接执行:SET PASSWORD=PASSWORD([新密码]) where  user = 你的用户名

Navicat 连接MySQL 8.0.11 出现2059错误

使用Navicat Premium 连接MySQL时出现如下错误:

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决 更改加密规则:

mysql -u root -p #登录

use mysql; #选择数据库
# 远程连接请将localhost换成%

ALTER USER root用户@localhost IDENTIFIED BY 当前密码 PASSWORD EXPIRE NEVER; #更改加密方式

ALTER USER root用户@localhost IDENTIFIED WITH mysql_native_password BY 当前密码; #更新用户密码

FLUSH PRIVILEGES; #刷新权限
经验分享 程序员 微信小程序 职场和发展