<!-- 密码突然登录不上MySQL了,久了也不晓得是不是密码不正确...只能改密码...一年难得碰一次,感觉每次总有莫名其妙的问题 -->
<!-- 修改方案只找到一个,就是无密码验证开启mysql服务,然后登录,设置新密码 -->
<!-- mysql版本不同有些命令无效,大概分高低两版本 -->
<!-- 低版命令 我的是新版本,以下命令没有试成功 -->
<!-- 无密码验证开启服务 -->
mysqld --skip-grant-tables
<!-- 修改密码-并刷新-退出 -->
use mysql; update user set password=password('123456') where user='root'; flush privileges; quit
<!-- 高版本-修改成功了 --> <!-- 指定启动配置文件 无密码验证开启服务; --> <!-- 前面没有指定启动文件,一直报错:Failed to find valid data directory; 我自己是没有额外配置的,这就是默认的配置,还要报错,真的是服了 --> <!-- C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 此文件里面指定了数据存放位置 datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data -->
mysqld --defaults-file='C:\ProgramData\MySQL\MySQL Server 8.0\my.ini' --console --skip-grant-tables --shared-memory
<!-- 另开窗口进入mysql --> <!-- 输入直接 回车 回车;不输入密码 -->
mysql -uroot -p
<!-- 刷新一下 -->
flush privileges;
<!-- 再修改密码 报错了 -->
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
<!-- 换这个成功 -->
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
<!-- 再试试也可以 -->
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';
<!-- 最后刷新一下然后退出 -->
flush privileges; quit
<!-- 'root'@'%' 'root'@'localhost' 两个好像是远程和本地使用时的区别? -->
<!-- 关闭服务再正常重启,输入密码 mysql 就成功登录了 --> 标签:...,grant,--,skip,Failed,tables,mysql,root From: https://www.cnblogs.com/jiayouba/p/18033166