首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQLSTATE[HY000] [2002] Drush命令不起作用- DDEV vanilla Drupal8安装

SQLSTATE[HY000] [2002] Drush命令不起作用- DDEV vanilla Drupal8安装
EN

Stack Overflow用户
提问于 2018-06-02 16:16:32
回答 1查看 1.3K关注 0票数 2

我刚刚使用ddev创建了一个新的Drupal8安装,然而,我在使用drush时遇到了问题。每当我运行命令drush cr时,它都会返回错误:

代码语言:javascript
复制
 [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中的hostlocalhost更改为127.0.0.1,但由于settings.php文件是由ddev在配置过程中生成的,因此host实际上是db,更改为任何值都会导致站点崩溃。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 06:50:01

在ddev的最新版本中,有两种方法可以运行drush。

最有可能工作的方式是在容器内运行drush命令。

ddev sshdrush crddev exec drush cr

您还可以使用ddev在主机上运行drush。如果你在项目目录中,并且在主机上安装了drush 8,像drush sql-clidrush uli这样的命令“就行了”。您的里程可能会有所不同。

不过,关于drush的一般用法有几点需要注意,特别是在使用Drupal8和drush 9+时:

  • drush 9+永远不能全局安装,它总是使用composer按项目安装。
  • 按照drush项目的建议,容器内的全局/usr/
  • /bin/drush实际上是"drush launcher“。它首先尝试使用站点本地composer安装的drush。如果不存在或找不到,drush launcher将使用/usr/local/bin/drush8,这是drush 8在容器中的全局安装。
  • 我绝对认识一些非常有经验和著名的Drupal8开发人员,他们从不依赖drush launcher,他们会在容器内运行像vendor/bin/drush sql-cli (或主机上的ddev exec /var/www/html/vendor/bin/drush sql-cli )这样的drush命令,以获得他们想要的确切的站点本地drush。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50654894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档