【MYSQL】windows及Linux系统的mysql5.7和mysql8.0数据库密码重置

windows及Linux系统的mysql5.7和mysql8.0数据库密码重置

本文基于mysql数据库,分析不同版本mysql数据库的密码重置问题。

版本差异

Mysql数据库的历史版本中,5.7以下版本初始密码为空, 5.7以上版本数据库初始化完成后,会自动生成一个 root@localhost 用户,root 用户的密码不为空,而是随机产生一个密码,默认连接使用 SSL 的加密方式。对于Mysql5.7 版本,其将于2023年10月31日停止支持,后续官方将不再进行后续的代码维护。目前在市场中,主流使用均为Mysql8.0版本,因此本文会依据8.0和5.7版本分别进行说明。

处理过程

windows系统的mysql5.7版本密码重置

配置环境:win10系统

1、停止MySQL服务。在“开始”菜单输入“服务”,可以通过“服务”应用程序找到MySQL服务,并停止它。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
2、使用CMD命令提示符,运用管理员权限进入MySQL的安装目录的bin文件夹。
3、启动MySQL服务,同时跳过授权表,执行以下命令

mysqld.exe --skip-grant-tables

4、用管理员权限再打开一个命令窗口(原窗口不能关闭),再次进入MySQL的bin目录,然后启动MySQL客户端:

mysql.exe -u root

5、刷新权限并重置root用户密码。在MySQL命令行中执行以下命令(图7):

use mysql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

6、这时候注意在进程里杀掉“mysqld.exe”,否则mysql服务重启不成功。
在这里插入图片描述

7、这时进入mysql(不需要cmd的管理员权限),输入重置后的新密码,即可成功登录。
在这里插入图片描述

windows系统的mysql8.0版本密码重置

8.0版本和5.7版本配置基本一致,只是在第3步跳过授权表时,采用新的命令:

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

(三)linux环境下的mysql5.7版本密码重置

配置环境:centos7系统

Mysql在安装后,会存在一个初始密码存放在mysqld.log文件中,使用

 grep 'temporary password' /var/log/mysqld.log

可以查看初始密码。

1、输入命令vim /etc/my.cnf,进入mysqld。按i插入:skip-grant-tables,然后按“:”后,wq保存退出。
在这里插入图片描述
2、重启mysqld服务:

service mysqld restart

3、这时进入mysql,输入命令:

mysql -uroot -p

就不需要密码了。
4、使用

use mysql
select * from user

确认当前为mysql数据库及root用户名和密码字段。

5、使用命令:

update user set authentication_string=password("你想用的新密码") where user='root'; 

然后保存。

6、进入my.cnf删除skip-grant-tables之后,进入mysql,使用刚才新的密码登录即可。

linux环境下的mysql8.0版本密码重置

8.0版本和5.7版本在linux下命令相同。

综上所述,mysql密码重置主要是通过mysqld来跳过密码验证,进入mysql后使用mysql语句重置或修改密码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值