【问题标题】:message: "SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (SQL: select * from `users`...)"消息:“SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:名称解析暂时失败(SQL:从`users`中选择* ...)”
【发布时间】:2019-10-31 15:18:59
【问题描述】:

我在 Windows 操作系统上开发了一个 Web 门户,使用 Angular-7 作为前端,Laravel-5.8 作为后端。在部署之前,我在本地机器上测试了一切,一切正常。

Linux Ubuntu 服务器 IP 为:20.10.10.122 Laravel 文件路径为:

http://120.10.10.122/client-app/backend

.env

APP_NAME=Client
APP_ENV=local
APP_KEY=base64:QT/LLNA/aduSekOXF4/CsY1iYEcRwwwwssssssHxuFs=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=http://localhost/
DB_PORT=3306
DB_DATABASE=client
DB_USERNAME=jdggsss
DB_PASSWORD=kjhgfdddd

但是,当我部署到 Linux Ubuntu-18 服务器时,我运行了该应用程序。当用户尝试登录时,我收到此错误:

消息:“SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: 名称解析临时失败(SQL: select * from users where email = noblemfd@yahoo.com and active = 1 and @ 987654326@ 为空,users.deleted_at 为空限制 1)"

为什么会出现错误以及如何解决?

【问题讨论】:

  • 我认为 Laravel 正在尝试连接到远程数据库服务器但未能成功,请发布您的 .env DB_HOST
  • @Saly3301 - 我已经添加了 .env
  • 将您的 DB_HOST 更改为 127.0.0.1

标签: angular laravel


【解决方案1】:

更改您的环境变量以通过 TCP 连接到本地 MySQL 服务器

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=client
DB_USERNAME=jdggsss
DB_PASSWORD=kjhgfdddd

【讨论】:

    【解决方案2】:

    您的DB_HOST 环境变量显然是错误的。您已将 http:// URI Scheme 添加到其中。 http:// 方案用于识别 http 协议,MySQL 不使用它。

    您应该只使用hostname,不带前缀:

    DB_HOST=localhost
    

    【讨论】:

      猜你喜欢
      • 2020-04-14
      • 2015-07-22
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2019-01-14
      • 2017-08-13
      • 2021-08-23
      相关资源
      最近更新 更多