首页 > 解决方案 > SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:提供节点名和服务名

问题描述

之前已经提出过这个问题,但没有一个解决方案有效。我在用:

我正在学习一个教程,我正在尝试运行一些代码来连接到数据库。

我可以通过 Adminer.php 和我的 SQL 客户端连接到数据库,但是在尝试访问数据库时,我得到:

Illuminate\Database\QueryException SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known (SQL: select namefrom productswhere id= 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 屏幕:

phpMyAdmin 连接

有关如何解决此问题的任何想法?

标签: phpmysqllaravel

解决方案


推荐阅读