1.用管理员来运行cmd,暂停mysql服务
C:\Windows\system32>net stop mysql
2.cd 切换到MySQL的安装目录
C:\Windows\system32>cd C:\Program Files\MySQL\MySQL Server 8.0\bin
3.设置跳过mysql登陆密码
mysqld --console --skip-grant-tables --shared-memory
如果这里出现错误:如
2021-6-10T14:29:24.205939Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2021-6-10T14:29:24.207560Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2021-6-10T14:29:24.209780Z 0 [ERROR] [MY-010119] [Server] Aborting
先解决自己创建的data文件夹
然后在执行以下命令
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld -remove MySQL
Service successfully removed.
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --initialize-insecure
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install
Service successfully install
然后在重复上面3命令。如果没报错执行下一步
4.在重新cmd窗口,还是用管理员来执行cmd,第一个窗口先不要关掉
C:\Windows\system32>net start mysql
C:\Windows\system32>cd C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.25 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.25 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye