Symfony 与 DDEV CLI 数据库连接

Tah*_*ssi 0 symfony docker ddev

我想使用 docker 启动一个 Symfony 项目!我尝试使用 DDEV CLI 构建它! https://ddev.readthedocs.io/en/stable/users/cli-usage/

我使用的是 DDEV 的标准配置。(php)

一旦我想做:

php bin/console make:migration
Run Code Online (Sandbox Code Playgroud)

我有 :

  An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: 
  getaddrinfo failed: nodename nor servname provided, or not known  
Run Code Online (Sandbox Code Playgroud)

.env 文件:

 DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=10.2"
Run Code Online (Sandbox Code Playgroud)

当我将 .env 中的主机更改为:127.0.0.1 时:

 DATABASE_URL="mysql://db:db@127.0.0.1:3306/db?serverVersion=10.2"
Run Code Online (Sandbox Code Playgroud)

我有:

   An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested 
   authentication method unknown to the client  
Run Code Online (Sandbox Code Playgroud)

DDEV 配置.yaml

  name: bib
  type: php
  docroot: public
  php_version: "7.3"
  webserver_type: nginx-fpm
  router_http_port: "80"
  router_https_port: "443"
  xdebug_enabled: false
  additional_hostnames: []
  additional_fqdns: []
  provider: default
  use_dns_when_possible: true
Run Code Online (Sandbox Code Playgroud)

请在这方面寻求帮助。

Nic*_*ase 7

您需要从ddev 容器运行所有此类命令,可以通过 SSH 终端(ddev ssh在容器中打开 shell),也可以作为临时命令 ( ddev exec php bin/console make:migration)。

这是必需的,因为用于在一个容器与任何其他容器之间通信的主机名只能从容器本身内部解析