对 MySQL 有研究的读者,可能会发现 MySQL 更新很快,在安装方式上,MySQL 提供了两种经典安装方式:解压式和一键式,虽然是两种安装方式,但我更提倡选择解压式安装,不仅快,还干净。在操作系统上,MySQL 也支持多类型操作系统,如 linux,windows 等,如下为 MySQL 几个重大变化的操作系统。
通过研究分析,不难发现:MySQL 从低版本向高版本迭代变化的过程,越来越严谨的安全性是其一大特点之一,我们举个例子,在版本 6 前,当忘记密码,重置密码,非常方面,只需使用执行如下两步即可:
步骤一:跳过权限表
mysqld –skip-grant-tables
步骤二:将密码置空
UPDATE user SET authentication_string=''WHERE user='root';
然而,这个方案,却在 MySQL8 不适用。
本篇文章将来解决 MySQL 8 忘记密码重置密码问题。主要包括三方面类容
内容一:简述解压式安装 MySQL 8
内容二:忘记密码重置密码解决方案一
内容三:忘记密码重置密码解决方案二
一 安装
1. 在官网下载安装包 (官网提供两种安装方式: 可视化安装方式和解压式),本示例以基于解压式。官网下载地址 https://dev.mysql.com/downloads/mysql/
2. 将安装包解压,放在 C:\MySQL 目录下面
3. 配置环境变量
MySQL_HOME="C:\MySQL\mysql-8.0.15-winx64"
PATH="%MySQL_HOME%\bin"
4. 以管理员身份打开 dos
(1)启动服务
mysqld --install
(2) 初始化并产生初始化密码 (MySQL7 + 没有 data 目录,初始话安装 data 目录)
mysqld --initialize --user=mysql --console
(3)启动服务
net start mysql
(4)登录
账号 root, 密码为初始话产生的临时密码 A*v)(Ivw7xjQ,登录后,需要改变
(5)更改 root 密码
格式:alter user '用户名'@'登录主机' identified by '密码 (自定义)';
(6)新密码登录
(7)扩展命令
移除服务:mysqld --remove
停止 mysql 服务:mysql stop mysql
退出 mysql:exit
二 解决忘记密码问题
(一)方案一
1. 管理员身份进入 dos
2. 停止 mysql 服务
net stop mysql
3. 无密码启动
mysqld --console --skip-grant-tables --shared-memory
4. 另启一个 dos 窗口,无密码登录
5. 清空密码
注意:authentication_string 采用的是 plugin 加密方式,故设置为空,不要设置为其他值
6. 启动服务
关闭打开的两个 dos 窗口,然后以管理员身份重新打开一个 dos 窗口,启动服务
net start mysql
7. 无密码登录
mysql -u root
8. 重新设置密码
修改后,就可以用新密码登录了。
9. 新密码登录
(二)方案二:利用参数 --init-file 参数
1. 停止服务
net stop mysql
2. 在 c:\MySQL 目录下创建 ResetPWD.txt 文件,文件内容为
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3. 执行 ResetPWD.txt 文件
mysqld --init-file=c:\mysql\ResetPWD.txt --console,执行完毕后,关闭 dos 窗口
4. 启动 mysql
net start mysql
5. 用新密码登录