Mysql8 用Navicat和Php5.6连接失败

情况:


MYSQL8 的密码机制导致了大量的软件无法连接
1.导致Navicat无法连接MySQL8.0的
2.Sequel Pro无法连接mysql8
3.php 5.6 的原来代码也连接不上了,显示数据库无法连接(看来要用php7)
提示客户端过期

原因


MySQL 8.0 版本去除了 password 字段,改用 authentication_string 字段,导致网上可以搜到的各种问题的各种解决方法完全没有效果;同时还更改了加密方式,之前版本的加密方式是「mysql_native_password」,8.0 之后的加密规则更改为「caching_sha2_password 」,这里需要把用户密码加密规则更改为原来的加密方式即可。

解决mysql8.0密码无法登陆的办法

修改my.cnf

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default_authentication_plugin=mysql_native_password

重启动mysql

打开终端,输入命令

mysql -u root -p
use mysql;

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword'; 

刷新权限

flush privileges;


This entry was posted in 数据库 and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/mysql8-password/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.
2020.03.24 评论已经全局关闭,有事加QQ聊天