1.关闭mysql8服务(或者在windows32目录下执行:net stop mysql)
先跳过安全检查(新建命令窗口1):
进入mysql8.0的bin目录,执行以下语句:
mysqld --console --skip-grant-tables --shared-memory
报错:
2022-06-08T01:36:29.364886Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.23) starting as process 26856 2022-06-08T01:36:29.372881Z 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 2022-06-08T01:36:29.374008Z 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 2022-06-08T01:36:29.375508Z 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) 2022-06-08T01:36:29.402135Z 0 [ERROR] [MY-010119] [Server] Aborting 2022-06-08T01:36:29.402240Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.23) MySQL Community Server - GPL.
然后添加my.ini配置文件路径解决:
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory
不要关闭命令窗口1,新建命令窗口2,然后输入:
myql -u root -p
不输入密码,直接回车进入mysql,然后切换数据到mysql库:use mysql;
更改密码为空(一定要为空):
update user set authentication_string='' where user='root';
然后退出(exit获取quit)
然后关闭(或者ctal+c)命令窗口1.
启动mysql8服务,然后输入mysql -u root -p回车,进入数据库修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '******'; FLUSH PRIVILEGES;
然后退出即可。