php - SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:提供节点名和服务名
问题描述
之前已经提出过这个问题,但没有一个解决方案有效。我在用:
- OS X 11.0.1
- PHP 7.4.9
- mysql 8.0.20
- Laravel 框架 8.18.1
我正在学习一个教程,我正在尝试运行一些代码来连接到数据库。
我可以通过 Adminer.php 和我的 SQL 客户端连接到数据库,但是在尝试访问数据库时,我得到:
Illuminate\Database\QueryException SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known (SQL: select
name
fromproducts
whereid
= 4 limit 1)
我的环境文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=storify
DB_USERNAME=root
DB_PASSWORD=rootroot
我的猜测是它无法连接到本地数据库实例。我尝试将主机设置为 127.0.0.1:3306。我还尝试编辑 database.php 以进一步排除故障,但消息仍然存在:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => '127.0.0.1',
'database' => env('DB_DATABASE', 'forge'),
'username' => 'root',
'password' => 'rootroot',
'unix_socket' => env('DB_SOCKET', ''),
每次进行更改时,我也会运行此命令:
php artisan cache:clear
如果我将主机更改为明显不正确的东西,我仍然会得到同样的错误,所以 Laravel 肯定会因为一些奇怪的原因找不到主机。
我的主机文件仅包含:
127.0.0.1 localhost localhost.local
phpAdmin 屏幕:
有关如何解决此问题的任何想法?
解决方案
推荐阅读
- elasticsearch - 如何在elasticsearch中对Height执行范围搜索
- amazon-web-services - AWS Fargate 容器无法访问
- r - 使用 if else 语句创建一个灵活的公式,可以根据呈现的刺激进行调整
- node.js - 如何使用 docker 镜像生成静态文件以从 nginx 镜像提供服务?
- node.js - 如何将音频/Spotify 附件添加到 azure bot 服务?
- android - 使用嵌套类序列化对象返回空字符串 Kotlin
- python - 拆分包含字典列表的 pandas 列
- javascript - 我们如何从 php 中的脚本传递一个变量并将其设置为新的变量?(关闭)
- perl - 如何让 Perl 的剪贴板模块将 utf-8 正确写入剪贴板?
- angular - 将项目添加到 cdkVirtualFor