【问题标题】:JWTRefreshTokenBundle: Name or service not knownJWTRefreshTokenBundle:名称或服务未知
【发布时间】:2019-07-07 11:05:14
【问题描述】:

我们有一个可以使用 Symfony 4 和 Lexik JWT 身份验证包从/auth/user-token 成功返回令牌的工作应用程序。但是,在我安装JWTRefreshTokenBundle(通过step 3 完成安装)之后,我在访问现有端点时收到此错误:

驱动程序发生异常:SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

将我的文件恢复到预安装状态可以让应用再次运行。

有人对这里可能发生的事情有任何想法吗?

===

更新:尝试通过第 5 步(架构更新)运行安装会导致此错误:

在 AbstractMySQLDriver.php 第 113 行: 驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied 在 PDOConnection.php 第 50 行: SQLSTATE[HY000] [2002] 连接被拒绝 在 PDOConnection.php 第 46 行: SQLSTATE[HY000] [2002] 连接被拒绝

【问题讨论】:

  • 当你安装 JWTRefreshTokenBundle 时,你有没有修改过数据库配置?您正在使用 .env?
  • 感谢您的回复。我确实在使用.env,并且看起来数据库配置在安装过程中没有被修改。

标签: php mysql symfony jwt


【解决方案1】:

您必须安装mysql,然后将以下行添加到您位于 symfony 根目录的 .env 文件中:

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"

然后将以下值替换为所需值:

db_user您的数据库用户

db_password你的数据库密码

db_name您的数据库名称

然后在config/packages/doctrine.yaml做如下修改:

doctrine:
    dbal:
        url: '%env(DATABASE_URL)%'

【讨论】:

  • 这是个好建议,但您所描述的所有内容都已经到位。并且执行git status 表明这些文件在安装包期间没有被修改。这是非常奇怪的行为。
  • 您的.env文件在安装过程中没有被修改,但是您的新Mysql服务器可能有不同的配置,您必须根据新配置更新.env文件。
  • 这很有趣——从我们的开发分支中提取新的更改似乎已经解决了这个问题。感谢您是唯一给出答案的人,您获得了赏金:-)
  • YW Patrick,请将我的答案标记为所需答案并投票。 @Patrickatwork
猜你喜欢
  • 2016-11-10
  • 2013-08-08
  • 2016-01-06
  • 1970-01-01
  • 2021-08-19
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多