Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker:Drupal容器链接到mysql容器can';在Drupal安装期间不要连接到mysql_Mysql_Drupal_Docker - Fatal编程技术网

Docker:Drupal容器链接到mysql容器can';在Drupal安装期间不要连接到mysql

Docker:Drupal容器链接到mysql容器can';在Drupal安装期间不要连接到mysql,mysql,drupal,docker,Mysql,Drupal,Docker,我是docker的新手,我刚刚浏览了CMS,看看它们的配置有多容易。到目前为止,Wordpress和Joomla已经退房了 当我运行链接到mysql的drupal容器时,我进入drupal安装屏幕,屏幕上显示要连接数据库,我使用根凭据和数据库主机作为“localhost”,并在尝试连接时收到错误。我附加了一个图像,向您显示输出 我得到的错误是: Failed to connect to your database server. The server reports the following

我是docker的新手,我刚刚浏览了CMS,看看它们的配置有多容易。到目前为止,Wordpress和Joomla已经退房了

当我运行链接到mysql的drupal容器时,我进入drupal安装屏幕,屏幕上显示要连接数据库,我使用根凭据和数据库主机作为“localhost”,并在尝试连接时收到错误。我附加了一个图像,向您显示输出

我得到的错误是:

Failed to connect to your database server. The server reports the following message: SQLSTATE[HY000] [2002] No such file or directory.
这方面的任何帮助都会很好。我试图查看是否可以使用配置文件访问卷的物理层,但使用Kitematic无法找到它们

谢谢大家!

以下文件将启动连接到另一个运行Mysql的容器的Drupal

db:
  image: mysql
  environment:
    - MYSQL_ROOT_PASSWORD=letmein
    - MYSQL_DATABASE=drupal
    - MYSQL_USER=drupal
    - MYSQL_PASSWORD=drupal
  volumes:
    - /var/lib/mysql
web:
  image: drupal
  links:
    - db:mysql
  ports:
    - "8080:80"
  volumes:
    - /var/www/html/sites
    - /var/www/private
请注意,drupal容器使用。这将创建一个名为“mysql”的/etc/hosts条目。在运行drupal安装屏幕时,使用此选项而不是“localhost”


注 自最初起草此答案以来,docker compose文件语法已更改

下面是更新的语法

version: '2'
services:
  mysql:
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=letmein
      - MYSQL_DATABASE=drupal
      - MYSQL_USER=drupal
      - MYSQL_PASSWORD=drupal
    volumes:
      - /var/lib/mysql
  web:
    image: drupal
    depends_on:
      - mysql
    ports:
      - "8080:80"
    volumes:
      - /var/www/html/sites
      - /var/www/private

我的窍门是在Drupal连接设置(settings.local.php)中添加数据库容器的服务名称,而不是“localhost”或“127.0.0.1”,如:

$databases['default']['default'] = array(
'database' => 'database-name',
'username' => 'root',
'password' => 'root',
'host' => 'database-container-name',
'port' => '3306',
'driver' => 'mysql',
'prefix' => '',
);

谢谢你,马克,当涉及到管理docker内容时,撰写文件是他们的必经之路。我现在唯一想做的就是如何设置本地drupal内容以装载/链接到docker compose文件。所以我可以在docker上开发并查看输出VM@VincentSpacecompose文件中列出的docker卷可以轻松映射到dev空间中的本地目录。签出组合文件语法。@Superbyte您能更具体一点吗?这是一个旧答案,使用版本1语法编写文件,但我使用docker compose的版本1.14.0对其进行了测试,它仍然有效。@MarkO'Connor感谢您的回复。我的问题大约在3个小时前就解决了:)你知道在docker compose的第2版中如何做到这一点吗?如果是这样的话,如果您能更新答案,我将不胜感激。这对我来说很有效!不过,我还是很好奇,仅仅在
docker compose.yml
中添加
链接怎么会没有帮助@Rishikulshreshta的货币贬值了