关于Mac上MySQL认证失败的问题
今天遇到了点小问题,想重构一个项目,顺便创建一个干净的数据库,但是连接失败!
问题描述
事实上我在终端上测试后确定账号和密码是没有问题的,因此重点查看软件和MySQL。终于仔细检查后发现是认证失败的问题。这个问题就很纳闷,咋会遇到这种问题,只好看看大家有没有遇到过。难道是Sequel Pro的问题?不应该吧,这就是一个普通的开源软件。
解决
终于找到一篇靠谱的文章,描述了异常的原因,而不是直接说怎么解决。
主要原因是8.x版本的MySQL的验证机制变成了caching_sha2_password,并不是原来的mysql_native_password。问题说简单也简单,说复杂也复杂,升级个版本还有这样的问题,怪不得没有太多人愿意随便升版本。
方案
低版本的MySQL,比如5.6,使用的时候是这样的
1 | create database xxx charset=utf8mb4; |
而对于高版本的比如8.x就得用以下的方式。
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; |
完事,再用Sequel Pro 连接就成功了,其他工具navicat也是这么操作,一样可以连接了。
总结
其实其他版本的MySQL也会有其他的问题,和低版本相比而言,之后再整理一下。
很快就要休假了,反而又热爱上了工作,可笑。。。
但愿假期一切安好吧!