我刚刚使用ddev创建了一个新的Drupal8安装,然而,我在使用drush时遇到了问题。每当我运行命令drush cr
时,它都会返回错误:
[error] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
如果我运行带有--debug
标志的命令drush en admin_toolbar
,它将返回错误:
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中的host
从localhost
更改为127.0.0.1
,但由于settings.php文件是由ddev在配置过程中生成的,因此host
实际上是db
,更改为任何值都会导致站点崩溃。
发布于 2018-06-03 06:50:01
在ddev的最新版本中,有两种方法可以运行drush。
最有可能工作的方式是在容器内运行drush命令。
ddev ssh
和drush cr
或ddev exec drush cr
您还可以使用ddev在主机上运行drush。如果你在项目目录中,并且在主机上安装了drush 8,像drush sql-cli
和drush uli
这样的命令“就行了”。您的里程可能会有所不同。
不过,关于drush的一般用法有几点需要注意,特别是在使用Drupal8和drush 9+时:
vendor/bin/drush sql-cli
(或主机上的ddev exec /var/www/html/vendor/bin/drush sql-cli
)这样的drush命令,以获得他们想要的确切的站点本地drush。https://stackoverflow.com/questions/50654894
复制相似问题