mysql access denied for root ... mysqld –skip-grant-tables 命令失效 ... Failed to find valid data directory

<!-- 密码突然登录不上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 就成功登录了 -->

热门相关:资本大唐   奈何老公太宠我   王妃不乖:独宠倾城妃   甜蜜隐婚:老公大人,宠上瘾   貌似纯洁