Mysql 忘记密码怎么重置密码(详细步骤)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Mysql 忘记密码怎么重置密码(详细步骤)

每种方法都有其适用的情况,根据具体情况选择合适的方法。无论选择哪种方法,请务必在重置密码后及时删除临时用户并重新启动MySQL服务

一、使用 mysqladmin 重置密码

  • 停止服务
# systemctl 启动的使用这个停止
$ sudo systemctl stop mysql
# mac 本机,可以使用这个或可视化界面停止
$ sudo mysql.server stop
  • 使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,执行后可能需要回车下
$ sudo mysqld_safe --skip-grant-tables &
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码
# 无需密码,会直接登入
$ mysql -u root  
# 刷新权限
mysql> FLUSH PRIVILEGES;  
# 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
# 修改好后退出 MySQL
mysql> exit
  • 停止 MySQL 服务,并重新启动密码登入即可
# 1、停止 MySQL 服务上面有,第一条就是
# 2、重启启动 MySQL 服务,并使用密码登入
# systemctl 启动的使用这个重新启动
$ sudo systemctl start mysql
# mac 本机,可以使用这个或可视化界面启动
$ sudo mysql.server start
# 3、密码登录
$ mysql -u root -p
# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。

二、使用 mysqld 重置密码

  • 停止服务
# systemctl 启动的使用这个停止
$ sudo systemctl stop mysql
# mac 本机,可以使用这个或可视化界面停止
$ sudo mysql.server stop
  • 使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,执行后需要回车下
$ sudo mysqld_safe --skip-grant-tables &
  • 登录 MySQL 服务,并创建新的临时用户,拥有 root 权限
# 无需密码,会直接登入
$ mysql -u root  
# 刷新权限
mysql> FLUSH PRIVILEGES;  
# 创建一个临时用户 temp_root 及 temp_password
mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password';  
# 设置权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;
# 修改好后退出 MySQL
mysql> exit
  • 停止 MySQL 服务,并重新启动密码登入,并使用 ALTER 命令修改 root 用户密码
# 1、停止 MySQL 服务上面有,第一条就是
# 2、重启启动 MySQL 服务,并使用密码登入
# systemctl 启动的使用这个重新启动
$ sudo systemctl start mysql
# mac 本机,可以使用这个或可视化界面启动
$ sudo mysql.server start
# 3、临时用户密码登录
$ mysql -u temp_root -p
# 4、这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
# 5、修改好后退出 MySQL
mysql> exit
# 6、停止 MySQL 服务上面有,第一条就是
# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
  • 再次使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,删除临时用户
$ sudo mysqld_safe --skip-grant-tables &  
$ mysql -u root  
mysql> FLUSH PRIVILEGES;  
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';  
mysql> DROP USER 'temp_root'@'localhost';  
mysql> exit
  • 再次重启 MySQL 服务,并使用修改好的 root 密码登入
# 1、停止 MySQL 服务上面有,第一条就是
# 2、重启启动 MySQL 服务,并使用密码登入
# systemctl 启动的使用这个重新启动
$ sudo systemctl start mysql
# mac 本机,可以使用这个或可视化界面启动
$ sudo mysql.server start
# 3、密码登录
$ mysql -u root -p

三、使用 MySQL 安全性模式重置密码

  • 停止服务
# systemctl 启动的使用这个停止
$ sudo systemctl stop mysql
# mac 本机,可以使用这个或可视化界面停止
$ sudo mysql.server stop
  • 启动 MySQL 安全性模式
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码
# 无需密码,会直接登入
$ mysql -u root  
mysql> FLUSH PRIVILEGES;  
# 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
# 修改好后退出 MySQL
mysql> exit
  • 停止 MySQL 安全性模式
$ sudo killall mysqld_safe
# 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决
# 1、列出 mysqld_safe 的进程
$ ps aux | grep mysqld_safe
# 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。
$ sudo kill -9 xxx xxx ...
  • 停止 MySQL 服务,并重新启动密码登入即可
# 1、停止 MySQL 服务上面有,第一条就是,如果通过 $ sudo kill 可以一起就杀死了。
# 2、重启启动 MySQL 服务,并使用密码登入
# systemctl 启动的使用这个重新启动
$ sudo systemctl start mysql
# mac 本机,可以使用这个或可视化界面启动
$ sudo mysql.server start
# 3、密码登录
$ mysql -u root -p
# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。

四、使用 my.cnf 重置密码

  • 该方式跟上面 方式一 基本一致,只是将命令中的跳过权限指令写到 my.cnf 中,修改好后再移除。
  • 在修改 my.cnf 之前一定要关闭 mysql 进程,关闭 mysql,不然可能会遇到 mysqlsock 不能连接的问题!
  • 停止服务
# systemctl 启动的使用这个停止
$ sudo systemctl stop mysql
# mac 本机,可以使用这个或可视化界面停止
$ sudo mysql.server stop
  • 打开 my.cnf,没有则创建一个
$ sudo vim /etc/my.cnf
  • 进入 vim 编辑器编辑之后,找到 [mysqld],按键盘的 i 键进入编辑模式,在 [mysqld] 后面任意一行添加 skip-grant-tables 用来跳过密码验证的过程。按 ESC 退出编辑,键入 :wq,回车即保存并退出。
[mysqld]
skip-grant-tables
  • 启动 mysqld 服务
# systemctl 启动的使用这个重新启动
$ sudo systemctl start mysql
# mac 本机,可以使用这个或可视化界面启动
$ sudo mysql.server start
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码
# 无需密码,会直接登入
$ mysql -u root  
# 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
# 刷新权限
mysql> FLUSH PRIVILEGES;  
# 修改好后退出 MySQL
mysql> exit
  • 再次打开 my.cnf,移除刚才添加的 skip-grant-tables,保存重启 MySQL 服务,并使用新的密码登入。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
18天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
100 10
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
112 18
|
4月前
|
Ubuntu 关系型数据库 MySQL
mysql8.0安装初始化不需要设定root密码?
uubntu 的mysql安装完成后无法设定root密码
294 10
|
5月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1363 26
|
6月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
278 16
|
10月前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
5月前
|
存储 Oracle 关系型数据库
MySQL 8.4 配置SSL组复制(八个步骤)
MySQL 8.4 配置SSL组复制(八个步骤)
264 0
|
8月前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
290 7
|
10月前
|
NoSQL 安全 关系型数据库
2024Mysql And Redis基础与进阶操作系列(6)作者——LJS[含MySQL 多表之一对一/多;多对多;多表联合查询等详解步骤及常见报错问题所对应的解决方法]
MySQL 多表之一对一/多;多对多;多表联合之交叉连接;内连接;左、右、外、满、连接;子查询及关键字;自连接查询等详解步骤及常见报错问题所对应的解决方法
|
10月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
502 3

推荐镜像

更多