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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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 服务,并使用新的密码登入。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Ubuntu 关系型数据库 MySQL
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
28 2
|
3月前
|
安全 关系型数据库 MySQL
linux 安装 mysql步骤
linux 安装 mysql步骤
439 0
|
7天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL忘记密码后重置密码
MySQL忘记密码后重置密码
2 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
206 0
|
1月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
62 0
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
124 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
181 0
|
1月前
|
关系型数据库 MySQL 数据库
【MySQL】——忘记密码后如何修改密码
【MySQL】——忘记密码后如何修改密码
42 0
|
2月前
|
存储 关系型数据库 MySQL
学习MySQL的基础学习步骤——纯理论篇,实操前必看
学习MySQL的基础学习步骤——纯理论篇,实操前必看
25 1
|
3月前
|
关系型数据库 MySQL 数据库
实现RDS MySQL实例数据迁移的详细步骤
实现RDS MySQL实例数据迁移的详细步骤 随着科技的飞速发展,数据库的应用越来越广泛,而数据迁移作为数据库管理的重要环节,其重要性不言而喻。本文将详细介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现将三节点企业系列的RDS MySQL实例的数据迁移到集群系列的RDS MySQL。
128 4