Mysql版本
8.0.26
解决方法
首先自己需要知道本机mysql服务名称,如不知道则下方停止与启动数据库时可进入Windows的服务中找到Mysql服务手动启动与停止
停止mysql服务,以管理员运行终端(Windows PowerShell)执行一下命令
powershell
net stop mysql80
不带日志输出的免密启动mysql方式
powershell
// 注意修改datadir后的安装路径
mysqld.exe --skip-grant-tables --shared-memory --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data"
此时上方命令执行并未退出即正常
重新打开一个以管理员运行终端执行无密码进入mysql
powershell
mysql -u root
成功进入后使用命令进入mysql库
powershell
use mysql
自8.0之后,MySQL的用户密码验证机制由"mysql_native_password"改为了"caching_sha2_password",因此直接修改密码可能导致不成功。
此时就需要先将密码制空后再进行密码修改操作
powershell
update user set authentication_string = '' where user = 'root'
制空密码之后,在当前MySQL数据库中使用"quit"命令退出数据库,再关闭终端窗口,依次关闭其他终端窗口,再次重新启动MySQL服务后,即可正常无密码登录数据库
powershell
// 重启mysql服务
net start mysql80
无密码进入mysql数据库切换到mysql库中
powershell
use mysql
修改user表即可完成所有更改密码的过程
powershell
alter user 'root'@'localhost' identified by '新密码'