今天分享下MySQL 8.0 以后版本登录1045密码错误重置密码问题,同时分享MySQL 使用Navicat连接MySQL8出现1251错误。
如果你的mysql 和 net命令不好使请自行百度配置环境变量
第一个问题
第一次写博客,总结下今天自己走的弯路。就第一个问题,刚开始的时候以为很简单百度了一下,网上的方法大致都是这样的
直接在C:\web\mysql-8.0.17\my.ini文件中找到[mysqld] 然后加上skip-grant-tables(mysql免密登录)
但实际经过我测试发现。修改这个配置文件必须从起mysql服务。这时你会发现加入skip-grant-tables之后mysql服务无发启动。
于是我又百度了这个原因,解决办法是#skip-grant-tables注释掉。。。(这里是不是太sb了)然后这个办法就行不通了
另一种方法,也就是我用来解决的方法。
打开cmd控制台 net stop mysql
然后再cd : C:\web\mysql-8.0.17\bin下执行如下代码
mysqld --console --skip-grant-tables --shared-memory(mysql免密登录)
这个时候你发现控制台停止了,任你如何操作都没有反应
所以你需要从新启动一个cmd
mysql -uroot -p
登陆成功 这个无需密码
use mysql
update user set authentication_string=’’ where user=‘root’;(将密码置为空)
quit
net start mysql 从起服务(需要将第一个cmd关掉)
mysql -uroot -p
正常使用
第二个问题
另一方面MySQL 使用Navicat连接MySQL8出现1251错误。
这个原因也很简单,因为mysql8.0版本跟之前密码的加密方式不同。一百度就能出来。但是通常这两种情况同时遇到
所以我就写在一起了
mysql -uroot -p
mysql> alter user root@localhost identified by ‘’ password expire never;
mysql> alter user root@localhost identified with mysql_native_password by ‘’;
mysql> flush privileges; # 刷新权限
新密码 也为空