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] 连接被拒绝” [重复]