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