SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo 失败:提供了节点名或服务名,或未知

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

我保留这个,而 运行 php artisan migrate

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

我的环境


.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

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

检查你的 DB_HOST 在你的 .env 文件

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


结果:

我现在可以和平迁移了。

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

设置DB_HOST=localhost和运行以下artisan命令

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

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

sail artisan migrate

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

如果您正在使用 docker,首先使用 docker ps 命令找到您的 docker 容器,然后使用 php artisan migrate 命令从您的容器中执行这个命令

docker exec -it {containerId} 

bash

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

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

user@ddev-project:  ddev ssh

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

这应该可以解决问题。

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

之后记得运行php artisan config:clear

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