下载了新的 mysql 却发现登陆不上:
网上索罗一番 有的说 cmd 命令下 去安装目录下 进入 bin\
然后mysql -uroot -pxxx 登陆 然而我的比较特殊 在命令行里依然出现了 上述错误, 登陆不进去
我的解决办法一:
在这里 进入终端进入 cmd 进行登陆
: 登陆成功 然后
登录后执行:
use mysql;
select host, user, plugin from user;
打印:
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
发现新版MySQL都是默认用caching_sha2_password这个plugin来加密密码了,HeidiSQL无法接入。现改成原生密码的加密方式。
执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx'; flush privileges;
(注: 这里的localhost 是用户这在本地登陆的, % 为 本地和远程登陆都可以。要根据用户的该属性对应填写 该值,比如:用户是可以远程登陆的 你填写 localhost 后,执行该句就会报错。)
就可以了。再执行上面的查询语句,返回:
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
可知,已经改mysql_native_password插件了。
办法二:
修改 mysql的配置文件 my.ini 初始化文件中,在[mysqld] 下边 添加 skip grant tables 图下图:
Cmd 输入 mysql -uroot -p 回车
提示让你输入密码 这个时候 直接回车就可以直接登陆上了
然后和一一样执行: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx'; flush privileges; 更改密码保存方式(不用最新的 插件)
两种方法的根本 目的 都是先登录上去, 然后 在修改 密码方式。
然而 修改密码的保存方式 除了执行上述的语句以外 也可以在 navicate 里边图形界面上修改其他用户的该属性。(前提是先用root 登陆上以后)
如下图示:一目了然不过多赘述(navicat版本12)