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 就成功登录了 –>

© 版权声明
THE END
支持一下吧
点赞5 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容