刚刚使用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中的host
从localhost
更改为127.0.0.1
,但由于settings.php文件是由ddev生成的在配置期间,host
实际上是db
并将其更改为任何内容都会导致网站中断。
答案 0 :(得分:0)
所以我通常在容器内运行drush命令,这是最容易做到的事情。看起来你正在主持人上匆匆忙忙,这可以做到,但是要弄清楚如何去做更多的工作。
ddev ssh
和drush 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是我项目中数据库容器的数据库端口。)
也许一个溺水专家可以让我们直截了当,但我建议在其家庭环境中,在容器内进行碾压。