作为一个后端转前端的码农,不知不觉已转型两年了,但对往昔好友(后端技术)还念念不忘。
这周刚好写完个小程序,暂时有点空,就去翻看了下Egg的文档,打算增长技术。文档还是挺简单的,感觉还是围绕着web服务的根基来走(Http,request,responsw)。
看完一遍文档,那些插件,loader之类的不大懂,这时候当然就是建个项目踩下坑。
就着提供的httpClient,感觉就是在web端写请求没啥区别,很快就拿到需要的线上的数据了,这时候当前就要找个地方存起来了。Egg里面教程就提到MySQL,那好就是你了。
按照教程把要的npm包按照上,然后就去MySQL官网下数据库。好久没折腾数据库了,虽然当年做后端是折腾sql server和Oracle的。去到官网,发现8.0都出来,2,3年没见就从5.x到8了。本着码农求新的觉悟,当然下了最新版的MySQL8.0。
当数据库安装好,表也建好了,egg里的插件也按照要求配好了。开始试下:host部分填localhost是个错误的操作
接着就把host:'locahost',改为host:'127.0.0.1',再试:
读下错误提示,大概意思是:客户端不支持MySQLClient的认证方式。
纳尼,是不是MySQL更新到8后,odbc没有更新?不对,这是egg啊,应该是egg-mysql的问题。
上github看下egg-mysql,其最新的commit是2018/08/20,更新内容主要是更新依赖文件的版本。再看看项目代码,代码量不大,主要逻辑就是按照Egg的代码风格,把“ali-rds”库包起来,看来锅不在egg-mysql。
突然想起忘记了重要的一部,百度一下(原理我还在用百度搜索):
答案有了:
原来是MySQL8.0后,相比5.x提供了另外一种认证方式,并把这设置为默认了。所以,解决方式就是选辉5.x的方式。
怎么重选呢,我这里是MySQL inStaller安装的,所以直接通过它可以重置一些设置。
好了,收尾,下班。
还有多说一句,发现MySQL Workbench作为MySQl客户端还是不错,可能是之前的那些都要钱了。。。