我是真的服了……花了大半天连云服务器上的数据库……
开始时用SQLyog,显示authentication plugin 'caching_sha2_password' cannot be loaded;
,搜索了一通,找到解决方案:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
然而,设成mysql_native_password后SQLyog又报错authentication plugin 'sha256_password' cannot be loaded;
,经过又一番的查找,我用grant赋予了新用户无上的权限(另外使用grant语句时又告诉我语法有问题,于是我搜索到新版本的mysql需要把创建user和grant分成两句;而且最开始用grant的时候报错 Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
,我在这里找到解决方案;我还一度被禁止修改密码,也无法停止mysql服务,然后自己发现是因为我用普通用户身份运行mysql,遂sudo -i
)可是还是报错。最后我怒了,我可是拥有尊贵的Idea企业版的学生,Idea中自带数据库可视化插件啊,我何必单恋一SQLyog呢?遂转战Idea。
然而,Idea中连接数据库,还连不上。但我忘记是什么毛病了orz(今天见到的报错太多了,请原谅我嘤嘤嘤)又是一通搜索,终于获得了远程数据库的可视化。
运行项目,结果一用到数据库就给我报错Access denied for user 'username'@'120.245.102.98'
。第一次,我检查application.yml,发现我用户名和密码写反了,但改过来后仍然不好使;第二次,按照网上教程,给url项增加了useSSL=false,还是不好使;我想是不是我给远程连接这个用户的权限开的有问题,但我的Idea能够正常连接,我用命令行也能正常连接,这也不合理啊。事情陷入僵局。
这时候,我想起来在解决mysql连接的其他问题的时候,曾在某一个博客上看过一眼“密码不要用0开头”,但当时觉得这个要求太荒唐了,没有当回事。如今走投无路,想到我的倒霉密码就是0开头,也只能试着改一下。这时候,奇迹发生了,当我把密码改为不是0开头,bug消失了!!!
淦!大家都用弱密码,大家都用生日,怎么00后这么难啊喂……