SQLSTATE [HY000] [2002] Drush命令无法正常工作 - DDEV vanilla Drupal 8安装

时间:2018-06-02 08:16:32

标签: drush ddev

刚刚使用ddev创建了一个新的Drupal 8安装,但是,我遇到了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.

我能找到的关于此问题的唯一解决方案是将settings.php中的hostlocalhost更改为127.0.0.1,但由于settings.php文件是由ddev生成的在配置期间,host实际上是db并将其更改为任何内容都会导致网站中断。

1 个答案:

答案 0 :(得分:0)

所以我通常在容器内运行drush命令,这是最容易做到的事情。看起来你正在主持人上匆匆忙忙,这可以做到,但是要弄清楚如何去做更多的工作。

ddev sshdrush cr 要么 ddev exec drush cr

基本上很难在主机上进行匆忙,因为它没有足够的上下文来运行。您可以通过使用drush sql-cli来获取主机安装的drush来运行一些命令(例如ddev describe以获取mysql容器的端口和drush --db-url=mysqli://db:db@127.0.0.1:32782/db sql-cli(这不会起作用)你,32782是我项目中数据库容器的数据库端口。)

也许一个溺水专家可以让我们直截了当,但我建议在其家庭环境中,在容器内进行碾压。