SQLSTATE [HY000] [2002] Команды Drush не работают - DDEV vanilla Drupal 8 install - PullRequest
0 голосов
/ 02 июня 2018

Только что создал новую установку Drupal 8 с использованием ddev, но у меня проблемы с drush.Всякий раз, когда я запускаю команду drush cr, она возвращает ошибку:

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

Если я запускаю команду drush en admin_toolbar с флагом --debug, она возвращает ошибку:

Executing: mysql --defaults-file=/private/tmp/drush_ty1hL4 --database=db --host=db --port=3306 --silent < /private/tmp/drush_OSFtCb ERROR 2005 (HY000): Unknown MySQL server host 'db' (0)

[Symfony\Component\Console\Exception\CommandNotFoundException] Command pm:enable was not found. Drush was unable to query the database.

Единственным решением, которое мне удалось найти в отношении этой проблемы, было изменение host в файле settings.php с localhost на 127.0.0.1, но после настройки.php-файл был сгенерирован ddev во время настройки, host на самом деле db, и изменение его на что-либо приводит к поломке сайта.

1 Ответ

0 голосов
/ 03 июня 2018

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

ddev ssh и drush cr или ddev exec drush cr

На вашем хосте слишком сложно запустить drush, потому что у него недостаточно контекста для запуска.Вы можете получить установленный на хосте drush для запуска нескольких команд (например, drush sql-cli, используя ddev describe для получения порта контейнера mysql и drush --db-url=mysqli://db:db@127.0.0.1:32782/db sql-cli (Это не сработает, у вас 32782 - это порт db)контейнера db в моем проекте.)

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

...