我尝试使用composer从Symfony 3.1.8升级到3.2.1。在缓存清除期间,我收到一条错误说明
驱动程序中发生异常:SQLSTATE [HY000] [1045]访问被拒绝 对于用户' ########' @' IpAddress' (使用密码:是)
但是我的数据库用户名应该是####### _#,注意第二个到最后一个字符位置的下划线。查看parameter.yml文件,我发现我的database_user已被更改为从用户名中删除_(删除了下划线)。然后我添加了我的下划线,删除了开发缓存,并再次尝试了该应用程序。我收到了和以前一样的错误。
由于composer还同时更新了doctrine和FOSuser包,我还原了更新并通过还原我的composer.lock文件返回到我之前的配置。然后我在版本3.1.8中再次运行我的Symfony应用程序,它工作正常。
为了进一步隔离问题,我使用了composer并将仅限于symfony从3.1.8升级到3.2.1。升级产生的错误在缓存清除时出现上述错误消息,并且在我的parameters.yml文件中,我的database_user再次从用户名中删除了下划线。我重新插入了下划线,但是我继续收到错误消息:
驱动程序中发生异常:SQLSTATE [HY000] [1045]访问被拒绝 对于用户' ########' @' IpAddress' (使用密码:是)
如果我在database_user的末尾添加一个字母,那么它就是" ####### _#a"错误消息显示_
驱动程序中发生异常:SQLSTATE [HY000] [1045]访问被拒绝 对于用户' ####### _#a' @' IpAddress' (使用密码:是)
如果我然后删除该字母,则错误消息将恢复为无下划线
驱动程序中发生异常:SQLSTATE [HY000] [1045]访问被拒绝 对于用户' ########' @' IpAddress' (使用密码:是)
这让我相信在3.1.8和3.2.1之间的Symfony中的一些更改会从parameters.yml文件中的database_user中删除下划线。不幸的是,我没有足够的技巧来弄清楚代码的位置。