Win10 系统MySQL8.0 忘记管理员密码,重新设置新的密码

首先使用管理员权限登录CMD

右键系统菜单–>选择Windows PowerShell(管理员)(A)启动管理员cmd

查看现有进程是否含有mysql

使用tasklist能列出所有的进程,和相应的信息。如果包含Mysql的开头的进程,一律杀死即可
tskill能查杀进程,语法很简单:tskill 程序名!!

切换命令行路径到Mysql的bin目录下

我是一步一步退出在重新进入的。

1
2
3
4
5
6
7
PS C:\Windows\system32> cd ..
PS C:\Windows> cd ..
PS C:\> ls
PS C:\> cd '.\Program Files\'
PS C:\Program Files> cd .\MySQL\
PS C:\Program Files\MySQL> cd '.\MySQL Server 8.0\'
PS C:\Program Files\MySQL\MySQL Server 8.0> cd bin

执行跳过权限认证的命令

8版本与前面的版本不一样,语法上是有区别的,注意区分

1
mysqld --console --skip-grant-tables --shared-memory

错误及处理

我在运行的时候,出现了下面的错误,错误原因是 console没有安装

1
2
3
4
5
6
2021-02-05T02:45:36.329602Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.22) starting as process 17040
2021-02-05T02:45:36.332291Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2021-02-05T02:45:36.332400Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2021-02-05T02:45:36.332547Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)
2021-02-05T02:45:36.346381Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-02-05T02:45:36.346516Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.22) MySQL Community Server - GPL.

下面就对这个错误进行处理哦!

  • 首先执行 mysqld --initialize --user=mysql --console
  • 执行成功后执行mysqld -install 会提示Service successfully installed.
  • 重新执行 mysqld --console --skip-grant-tables --shared-memory 即可。
    这时候当前这个命令行就不可以使用了。

    使用管理员权限在重新开一个命令行

    进入到Mysql的安装目录执行
    1
    PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql

这时候,就能成功的登录到mysql里面,我们来测试一下,是不是登录成功了

1
2
3
4
5
6
7
8
9

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |

可以发现我们已经登录成功。
然后执行下面的语句

1
2
3
mysql> use mysql;
Database changed
mysql> show tables;

老的版本是执行select user,host,password from user; 但是会报错password是一个无效的字段。在mysql8.0中password已经被替代了
因此我们要执行select user,host,authentication_string from user;
最后执行:

1
UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';

关闭两个CMD 重启mysql

我们关闭刚刚打开的两个管理员登录的cmd,然后在重新使用管理员权限打开一个cmd,输入

1
2
3
PS C:\Windows\system32> net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

启动成功之后,输入

1
PS C:\Windows\system32> mysql -u root

这时候,我们就进入到了mysql的界面了,在输入

1
2
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.01 sec)

这里的root 是我设置的测试用户名与密码,要根据自己的自行调整。

使用普通用户权限打开cmd

1
C:\Users\ouc>mysql -uroot -p

这样我们就可以使用新的密码成功的登录数据库了!

这里还是要提醒大家,尽量建立一个密码本,可以将密码都记录下来,这样就不用整天这么麻烦的因为这种小事情,捣鼓啦