2002 Php network getaddresses getaddrinfo failed

Сообщество, где люди делятся уникальным опытом

Вопросы и ответы по любой теме от IT сообщества

Помогаем строить карьеру в IT-индустрии

Биржа удаленной работы для IT-специалистов

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

I download from https://github.com/luciddreamz/laravel Laravel for openshift then upload over my repository over github. This code for connect to database not work. The problem is that load variable from .env file that locate in root of project

for solve this problem change .env

my error :SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

10 Answers 10

First line of the error message describes the error type: "PDOException". The next line displays PDO::errorInfo , i.e:

  1. SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard).
  2. Driver-specific error code.
  3. Driver-specific error message.
  • "HY000" is a general server error (see Server Error Codes and Messages in MySQL docs).
  • "2002" is MySQL Client Error Code meaning "Can’t connect to local MySQL server through socket" (see (Client Error Codes and Messages in MySQL docs).
  • The driver specific error code and message ("php_network_getaddresses: getaddrinfo failed: Name or service not known") tell you that PDO is not able to resolve the host name.

The stack trace you attached, line 3, reveals that you did not specify the database connection parameters in the configuration file. The error show up when you test on local, right? You need to update /.env with the actual database connection parameters.

Читайте также:  Яплакал не работает видео

Check your DB_HOST on your .env file

php artisan config:clear it will help you, clear cached config

It looks like you did not add a MySQL database to your application, OR you added it after you installed laravel. In that case, you need to stop & start (not restart) your application so that it will pick up your environment variables. (rhc app stop , rhc app start ). If you did not add a database yet, you will need to add one of the mysql cartridges, and then stop & start your application using the previously shown commands.

I’m using Laravel with Docker. I solved this problem by changing the value of DB_HOST from localhost to mysql .

If someone facing this problem when using Docker , be sure of you are using your version of SQL.

In my case: MYSQL_VERSION=latest changing to MYSQL_VERSION=5.7 .

Then you need to restart your Docker images with docker system prune -a .

Also in your .env you need to change DB_HOST=mysql . And run php artisan config:clear .

I think it will help someone.

I was having the same problem and everyone was talking about this is related to DNS configuration, which make sense, since your container maybe isn’t knowing how to resolve the name of the domain where your database is.

I guess your can configure that at the moment you start your container, but I think it’s better to config this once and for all.

I’m using Windows 10 and in this case docker’s gui give us some facilities.

Just right click on docker’s icon in the tray bar and select "Settings" item.

Then, on the Docker’s window, select the "Network" section and change the DNS option from "Automatic" to "Fixed" and hit "Apply". Docker will restart itself after that. I putted the Google’s DNS (8.8.8.8) and it worked fine to me.

Читайте также:  Спидбустер для чего нужен

я загружаю с https://github.com/luciddreamz/laravel laravel для openshift затем загрузите через мой репозиторий через github. этот код для подключения к базе данных не работает. проблема в том, что переменная загрузки из файла .env находится в корне проекта

для решения этой проблемы измените .env

моя ошибка: SQLSTATE [HY000] [2002] php_network_getaddresses: сбой getaddrinfo: имя или служба не известны

6 ответов

Первая строка сообщения об ошибке описывает тип ошибки: «PDOException». Следующая строка отображает PDO::errorInfo , то есть:

  1. Код ошибки SQLSTATE (буквенно-цифровой идентификатор из пяти символов, определенный в стандарте ANSI SQL).
  2. Код ошибки, зависящий от драйвера.
  3. Сообщение об ошибке для конкретного драйвера.
  • «HY000» – это общая ошибка сервера (см. коды ошибок сервера и сообщения в документации по MySQL).
  • «2002» – это код ошибки клиента MySQL, означающий «Не удается подключиться к локальному серверу MySQL через сокет» (см. ( коды ошибок клиента и сообщения в документации по MySQL).
  • Код и сообщение об ошибке драйвера («php_network_getaddresses: getaddrinfo fail: имя или служба неизвестна») сообщают, что PDO не может разрешить имя хоста.

Прикрепленная трассировка стека, строка 3, показывает, что вы не указали параметры подключения к базе данных в файле конфигурации. Ошибка появляется при тестировании на локальном, верно? Вам необходимо обновить /.env фактическими параметрами подключения к базе данных.

Похоже, вы не добавили базу данных MySQL в свое приложение ИЛИ добавили ее после установки laravel. В этом случае вам нужно остановить & Запустите (а не перезапустите) ваше приложение, чтобы оно приняло переменные среды. (остановка приложения rhc, запуск приложения rhc). Если вы еще не добавили базу данных, вам нужно будет добавить один из картриджей mysql, а затем остановить & Запустите приложение, используя ранее показанные команды.

Читайте также:  Что значит пахнуть свэгом

Проверьте DB_HOST в своем .env файл

php artisan config:clear это поможет вам очистить кешированный конфиг

Я использую Laravel с Docker. Я решил эту проблему, изменив значение DB_HOST из localhost в mysql .

У меня была такая же проблема, и все говорили об этом, что связано с настройкой DNS, что имеет смысл, поскольку ваш контейнер, возможно, не знает, как разрешить имя домена, в котором находится ваша база данных.

Полагаю, вы можете настроить это в тот момент, когда вы запускаете свой контейнер, но я думаю, что лучше настроить это раз и навсегда.

Я использую Windows 10, и в этом случае графический интерфейс докера дает нам некоторые возможности.

Просто щелкните правой кнопкой мыши значок докера на панели задач и выберите пункт «Настройки».

Затем в окне докера выберите раздел «Сеть», измените параметр DNS с «Автоматический» на «Исправлено» и нажмите «Применить». После этого Docker перезагрузится. Я поставил DNS Google (8.8.8.8), и он работал нормально для меня.

Надеюсь, это поможет.

Мы используем Symfony с доктриной, и мы находимся в процессе автоматизации развертывания. Я получил эту ошибку, когда просто не предоставил правильные кредиты БД в файле parameters.yml (я запускал doctrine: migrations: migrate)

Эта тема вызвала у меня небольшую погоню за диким гусем, поэтому я оставляю это здесь, чтобы другим это не понадобилось.

Оцените статью
Добавить комментарий

Adblock detector