一个自我解决该报错的记录,以防下次还崩溃地找
解决1(失败):navicat连接MySQL报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password: YES)_cmd中可以连接,而navitate中access denied for user 'root'@'-CSDN博客
第一次 :1.路径:C:\ProgramData\MySQL\MySQL Server 8.0
找到my.ini并在[mysqld]下增加skip-grant-tables保存退出
-->可能会权限不足,右键属性-安全-编辑-users-添加权限即可
2.重启mysql80
-->net start mysql80
-->net stop mysql80
3.进入MySQL
输入mysql -u root -p,空格进入。进入成功可看到welcom字样
(第二次尝试卡在此次,无法再空密码强制进入,遂放弃)
4.输入use mysql
UPDATE mysql.user SET authentication_string = '1234' WHERE user = 'root';
(此语句手输一直报错ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("1234") where user="root"' at line 1,格式问题,但无论双引号"",单引号'',``均报错,后跑ai复制成功)
flush privileges
quit
5.删除my.ini并在[mysqld]下增加skip-grant-tables
6.在navicat中测试连接
此步我失败,仍报错1045;重复上述步骤再试仍失败。遂寻别法。
解决2(成功):
1.请严格按照步骤,net stop mysql80后服务(ctrl+alt+delete)中mysql80仍在运行;
2.我本机mysql路径为: C:\Program Files\MySQL\MySQL Server 8.0
3.照做即可
4.编辑连接-测试连接-连接成功(此时可以连上该mysql,再点会弹出更新密码框)
另有一点是,除了这个mysql80的连接可以连上(新建连接也成功),其他数据库的连接无法通过此方法更改密码重连。
感谢两位大佬的帖子