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 元素名称或属性名称?
颤振未定义的名称“上下文”。尝试将名称更正为已定义的名称,或定义名称