一不小心把mysql密码忘记了,该怎么办?

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 很久之前,在centos服务器上安装了mysql5.7的数据库,但是很长时间没有使用过,里面有很多宝贵的数据,但是不幸的是密码忘记了~~。此时,就想是否有一种办法,能找回密码或者修改密码的方案。于是,就在网上找了一些方案,大体用的最多的就是skip-grant-tables解法。废话不多说,直接开撸!

二、解法详解

本例的操作系统是centos7,mysql是5.7的版本,可能不同版本的命令稍有不同,网友可以自行根据系统版本查询相关命令。

2.1、skip-grant-tables模式启动

skip-grant-tables表示,在启动mysql时不启动授权表功能,可以直接免密码登录

#修改/etc/my.cnf文件
vim /etc/my.cnf
#在[mysqld]区域添加配置,并保存my.cnf文件
skip-grant-tables
#重启mysql
systemctl restart mysqld
#登录mysql
mysql -u root -p
#如果出现输入密码,直接回车,就可以进入数据库了
2.2、修改root密码
#登录mysql,此时还没有进入数据库,使用如下命令
use mysql;
#修改root密码(mysql5.7版本)
update user set authentication_string = password('密码'), password_expired = 'N',password_last_changed = now() where user = 'root';
#如果你的mysql是5.6版本修改root密码(mysql5.6版本)
update user set password=password('密码') where user='root';
#使其生效
flush privileges;
#退出
exit;
2.3、新增管理员用户

如果你不想修改root密码,可以新增一个管理员用户,操作如下:

#登录mysql,此时还没有进入数据库,使用如下命令
use mysql;
#刷新数据库
flush privileges;
#创建一个用户,并赋予管理员权限
grant all privileges on *.* to '用户'@'%' identified by '密码';
#例如,创建一个admin用户,密码为admin
grant all privileges on *.* to 'admin'@'%' identified by 'admin';
2.4、重启服务器

上面操作完成之后,其实还没有完,需要关闭授权表功能,重启服务器

#修改/etc/my.cnf文件
vim /etc/my.cnf
#在[mysqld]区域删除改配置,并保存my.cnf文件
#skip-grant-tables
#重启mysql
systemctl restart mysqld
#此时,修改完毕

三、测试连接

使用我们刚刚新建的admin用户进行测试登录

#admin登录
mysql -u admin -p
#输入密码admin,此时可以登录


5.jpg

四、总结

如果您也出现忘记密码的情况,可以使用此方法解决当前问题。

mysql5.7.6版本后,废弃user表中password()方法,所以旧方法重置密码对mysql8.0版本是行不通的!

mysql8可以采用此方法修改root密码:

#在skip-grant-tables模式下,将root密码置空
update user set authentication_string = '' where user = 'root';
#退出,将/etc/my.cnf文件下的skip-grant-tables去掉,重启服务器
#登录mysql
mysql -u root -p
#因为密码置空,直接回车,进入数据库之后,修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hello@123456';
#因为mysql8,使用强校验,所以,如果密码过于简单,会报错,密码尽量搞复杂些!
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 网络安全
|
1月前
|
关系型数据库 MySQL 数据库
第十四章 演示MYSQL自定义values.yaml绑定PV和PVC和数据库用户密码
第十四章 演示MYSQL自定义values.yaml绑定PV和PVC和数据库用户密码
23 0
|
1月前
|
关系型数据库 MySQL 数据库
mysql数据库密码
mysql数据库密码
|
2月前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
381 3
|
5天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
12天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
25天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL忘记密码后重置密码
MySQL忘记密码后重置密码
9 0
|
1天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
|
1天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
|
2天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
15 0