重置 MySQL Root 用户密码
前言
由于在安装 MySQL 时设置的密码太长,又没有记录在小本本上。用到时才发现临时记忆丢失,想到重置 Root 密码。为了下次有记录可查,所以整理和记录了一下 如何重置 MySQL 数据库 Root 用户根密码 的相关方法和知识。
这里将介绍两种方法:一种方式适用于类 Unix 系统,另一种适用于所有平台。这两种方法适用于各自平台,请结合自己需要进行选择。
环境
由于日常中比较懒,所以就用 brew 管理一些常用的软件。这里我是通过 brew install mysql
命令安装 MySQL 数据库的。安装后数据库版本为:8.0.16 Homebrew 。
安装挺简单的这里不做过多的介绍,安装成功之后,会提示一下关于如何设置根密码、启动、安装位置等相关信息。
一种启动方式:通过这种方式启动,会在用户登录时立即启动或重启1
brew services start mysql
另一种启动方式:如果不需要后台服务的话,可以通过下边方式启动1
mysql.server start
重置密码
MySQL 重置密码的方式有很多,这里只介绍两种,可以根据自己的实际情况进行选择。第一种是适用于通用平台的,第二种适用于Unix 类平台,这里只提供一下方法参考。
通用方法
首先,新建一个文本,这里我将其命名为 rootpasswd。将下面命令复制到文本中。(注意:文本名和密码是自己设置的,后面会用到哦!)
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'devhitaoRootPasswd'; |
然后,如果 MySQL 处于运行状态,需要关闭它。在命令后中输入下面命令:1
mysqld --init-file=/Users/devhitao/desktop/rootpasswd &
重置完成后,新建一个终端,登陆 root 账号,然后按回车键输入 rootpasswd 文本中设置密码,如果没有设置,直接按回车键就好了。1
mysql -u root -p
注:重置成功后,如果不能通过重置的密码登录 root 账号,可以重启 MySQL 服务。
Unix 类方法
如果 MySQL 处于运行状态,首先找到 MySQL 运行进程存储文件,然后通过 kill 命令 kill 掉。
我在找 MySQL 进程文件时花费了一下时间,最终在 /usr/local/var/mysql 目录下找到了 xjbw.pid 文件。
不知怎么了,后来不知道为啥变为 xjbw.local.pid,可能跟启动方式有关吧,不过,文件名字一般为:hostname.[local.]pid。
关闭 MySQL 运行服务:1
kill `cat /usr/local/var/mysql/xjbw.local.pid`

然后在终端输入下面命令:1
mysql.server start --skip-grant-tables=ON
上面命令执行完成后,在终端中输入 mysql
命令,然后输入 FLUSH PRIVILEGES
,再然后输入 ALTER USER 'root'@'localhost' IDENTIFIED BY '';
。
例如:
进入 MySQL 命令1
mysql

清除权限:FLUSH PRIVILEGES1
FLUSH PRIVILEGES;

设置密码(根据自己的需要设置哈,这里我并没有设置)1
ALTER USER 'root'@'localhost' IDENTIFIED BY '';

退出,并重启 MySQL 服务1
mysql.server restart
FQA:
遇到问题:
如果不是通过 kill 方式关闭的进程 或 没有 kill 掉进程,可能会提示下面错误,必须通过上面方式进行kill。

ERROR!The server quit without updating PID file(/usr/local/var/mysql/xjbw.local.pid)
参考资料
文档信息
- 版权声明:自由转载-保持署名-非商用-非衍生 ( CC BY-NC-ND 4.0 )