手头一个小项目,时间比较紧,就用了Laravel来搭架子。前期项目开发完毕测试也没什么问题。于是部署到阿里云上,数据库就用了rds。但是系统跑起来一直报数据库连接被拒绝 Access denied for user 'xxxx'@'xxxxx' (using password: YES) ,但是在Navicat中连接是一切正常的啊。
分别检查了配置文件的连接地址,数据库名,用户名,密码,端口,然后再检查白名单,VPC网络,网络安全组,都没什么问题。真的是奇了怪了,以前一直没发生过这种事情。反复查验了好几遍,耗费了两个小时,还是报错。
这时,屎意袭来,就赶紧去拉了个屎。拉完一阵舒畅,一定要把这个问题找出来。然后我一步一步的看报错代码,看到有一行追踪代码里包含了mysql的连接信息,但好像密码少了好几位(一般连接信息都会字数过多会截断...,但密码这块没有,就显示了密码的前几位),马上去看rds的密码,原来密码里包含了#这个符号。。。而Laravel 的.env配置文件#是注释用的...马上更改密码,结果就正常了。。。
这么小小的一个问题,硬生生的耗费了两个小时。
希望大家引以为戒吧。。。
来源:oschina
链接:https://my.oschina.net/u/4559667/blog/4443871