docker-compose-无法连接到MySQL数据库

拉斐尔·拉法特帕纳(Raphael Rafatpanah)

TL; DR:WordPress无法使用以下docker-compose配置连接到MySQL。建立数据库连接时出错。为什么?

我正在使用以下docker-compose.yml文件来设置LEMP开发环境。

docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - '8080:80'
    volumes:
      - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf
      - ../wordpress:/var/www/wordpress
      - ./nginx/log:/var/log/nginx
    depends_on:
      - php
  php:
    image: php:fpm
    ports:
      - 9000:9000
    volumes:
      - ../wordpress:/var/www/wordpress
    depends_on:
      - mysql
  mysql:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: ado
      MYSQL_USER: ado
      MYSQL_PASSWORD: secret
    volumes:
      - ./mysql/data:/var/lib/mysql

(我也手动执行以下安装php-mysql

// inside php (`docker-compose exec php sh`)
docker-php-ext-install mysqli

// back on my local machine
docker restart <php's container id>

注意:我尝试同时使用localhost&和mysql作为MySQL的主机。

拉斐尔·拉法特帕纳(Raphael Rafatpanah)

好的。得到它了。

mysql服务内部手动创建数据库后,我添加了MySQL环境变量

  MYSQL_ROOT_PASSWORD: secret
  MYSQL_DATABASE: ado
  MYSQL_USER: ado
  MYSQL_PASSWORD: secret

我不是100%知道为什么,但是在删除MySQL的数据后./mysql/datadocker-compose down再进行docker-compose up -d一次操作(然后docker-php-ext-install mysqli在PHP服务内部安装php-mysqli ),一切正常。

然后,出现WordPress安装屏幕。安装后............我得到了一个空白的白屏!

好吧,这是因为我的WordPress文件未包含默认主题。

在进入/wp-admin并激活了主题之后,一切都终于成功了。

为了完整起见,这是我的nginx配置位于./nginx/config/default.conf

server {
  listen               80 default_server;
  listen               [::]:80 default_server;

  root                 /var/www/wordpress;
  index                index.php index.html;

  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ /\. {
    deny all;
  }

  location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
  }

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass php:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker Compose无法连接到数据库

无法使用Adminer和docker-compose连接到MySQL数据库

无法使用docker-compose与mysql和php 7连接到数据库

使用 docker compose 将 API 连接到数据库

在 Docker Compose 中连接到数据库的问题

无法在docker-compose(php和MariaDB)中连接到数据库服务器

无法使用docker compose将phpmyadmin连接到数据库

无法使用 docker-compose 连接到 Postgres 数据库

Docker-Compose无法连接到MySQL

在 docker compose 上运行时无法连接到 rails 应用程序中的数据库

Laravel 未连接到 Windows 上的 Docker/docker-compose 上的数据库

无法连接到Docker容器中的MySQL数据库

如何使用连接到本地机器上的另一个服务的 docker-compose 连接到数据库(redash & mysql & python_script)

Wordpress 未使用 nginx、letsencrypt 和 docker compose 连接到数据库

如何从主机连接到数据库-在docker compose下运行的容器中的SQL Server

无法从docker-compose连接到docker

MongoDB数据库连接错误-Docker Compose

与数据库连接-docker-compose up

Docker Compose:无法连接到Postgres

Docker-Compose:无法连接到Mongo

使用 Docker-Compose 连接 FastAPI 服务器和 MySQL 数据库的问题

无法在 Docker-Compose 文件中使用(mysql 映像中的卷)映射本地数据库

Docker MySQL-无法从Spring Boot应用连接到MySQL数据库

Docker Compose 无法从用户“postgres”的数据库 (jdbc:postgresql://db:5432/postgres) 获取连接:连接尝试失败

无法连接到 Docker 上的数据库

无法从 golang Docker 容器连接到 Postgres 数据库

无法连接到 Docker 上的 SQL 数据库

无法将PostgreSQL数据库从docker连接到python

无法从Docker容器连接到数据库