JWTRefreshTokenBundle:名称或服务未知

Posted

技术标签:

【中文标题】JWTRefreshTokenBundle:名称或服务未知【英文标题】:JWTRefreshTokenBundle: Name or service not known 【发布时间】: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,并且看起来数据库配置在安装过程中没有被修改。 【参考方案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

以上是关于JWTRefreshTokenBundle:名称或服务未知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用受控词汇表或分类法来定义 XML 元素名称或属性名称?

颤振未定义的名称“上下文”。尝试将名称更正为已定义的名称,或定义名称

错误:名称后跟 '::' 必须是类或命名空间名称

有问题,找不到类型或命名空间名称“List”

未定义的名称“更改按钮”。尝试将名称更正为已定义的名称,或定义名称

错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是不是有解释