SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided,

Posted

技术标签:

【中文标题】SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known【英文标题】:SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 【发布时间】:2016-01-20 12:01:25 【问题描述】:

我在运行php artisan migrate时保留它

我的环境

Laravel 框架版本 5.1.20 (LTS) Laravel 安装程序版本 1.2.0 PHP 5.6.14 (cli)(构建时间:2015 年 10 月 2 日 08:55:56) mysql Ver 14.14 Distrib 5.6.24,适用于 osx10.10 (x86_64)

.env 文件

APP_ENV=local
APP_URL=http://localhost/
APP_DEBUG=true
APP_KEY=****

DB_HOST=http://localhost/
DB_DATABASE=name-local
DB_USERNAME=root
DB_PASSWORD=
UNIX_SOCKET = /tmp/mysql.sock

那个数据库name-local 存在于我的本地数据库中。

任何提示/建议都会对我有很大帮助。

【问题讨论】:

【参考方案1】:

在您的.env 文件中检查您的DB_HOST

DB_HOST=http://localhost/ --> DB_HOST=localhost


结果:

我现在可以和平迁移了。

php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table

【讨论】:

只是评论如果其他人也落在这里,我的问题是我的 MySQL 主机服务器已关闭。注意这一点。这也可能是原因。【参考方案2】:

设置DB_HOST=localhost并运行以下工匠命令

php artisan config:clear会帮你,清除缓存配置

【讨论】:

【参考方案3】:

我终于弄清楚是什么导致了我这个错误。我正在使用 docker,但我没有从容器中的 shell 运行 php artisan migrate。导航到 laravel 项目文件夹后,我只是在终端中运行它。 转到您的 docker 仪表板并为您的项目映像中的 laravel 容器启动 CLI。然后运行迁移命令。

【讨论】:

这个答案对我有帮助!谢谢! 这有帮助!但是,您能否解释一下为什么它可以在 Container CLI 而不是 WSL 终端上运行? (我对 Sail / Docker 很陌生。我通常使用 Laragon)【参考方案4】:

如果您使用sail,您也可能会收到此错误,并且您运行 php artisan migrate 而不是:

sail artisan migrate

【讨论】:

或者你应该以./vessel artisan migrate运行迁移的容器包【参考方案5】:

如果您使用 docker,请先使用 docker ps 命令找到您的 docker 容器,然后使用此命令从您的容器中执行 php artisan migrate 命令

docker exec -it containerId 

狂欢

【讨论】:

【参考方案6】:

我在从 DDEV 运行 Laravel 时遇到了同样的问题。

解决方案:在 DDEV 容器中运行“php artisan migrate”。

user@ddev-project:  ddev ssh

user@ddev-project:/var/www/html$ php artisan migrate

这应该可以解决问题。

【讨论】:

【参考方案7】:

全新安装后,在 laravel 8.x 上遇到了同样的问题。设置DB_HOST=0.0.0.0 为我修复了它。

之后记得运行php artisan config:clear

【讨论】:

【参考方案8】:

您可以将SESSION_DRIVER 更改为file。为我工作。

【讨论】:

这对从命令行运行迁移时配置错误的数据库连接有何帮助?

以上是关于SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided, 的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 2 SQLSTATE [HY000] [2002] 连接被拒绝错误

Symfony 5 SQLSTATE [HY000] [2002] 在主机上发送项目后

Laravel 7 SQLSTATE [HY000] [2002] 连接被拒绝

PHP + MYSQL + Laravel - “SQLSTATE [HY000] [2002] 连接被拒绝” [重复]

Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

SQLSTATE[HY000] [2002] 连接被拒绝 Laravel 5.8.35