首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >连接到mariadb的幽灵会导致连接错误。

连接到mariadb的幽灵会导致连接错误。
EN

Stack Overflow用户
提问于 2018-02-25 08:47:48
回答 2查看 1.1K关注 0票数 0

我试图将我的幽灵数据保存在mariadb码头容器中,而不是将鬼怪内置到数据库中。在码头写作,在这里我有:

docker-compose.yml

代码语言:javascript
运行
复制
version: '3'

services:
  mariadb-container:
    image: mymariadb:latest
    restart: always
    ports:
      - 3306:3306
    # volumes:
    #   - ~/blog/mariadb:/var/lib/mysql

  ghost-container:
    image: myghost:latest
    restart: always
    ports:
      - 2368:2368
    depends_on:
      - mariadb-container
    # volumes:
    #   - ~/blog/content:/var/lib/ghost/content
    links:
      - mariadb-container

鬼/文档

代码语言:javascript
运行
复制
FROM ghost:latest

EXPOSE 2368

ADD ./config.production.json /var/lib/ghost

myghost/config.production.json

代码语言:javascript
运行
复制
{
    "url": "http://localhost:2368/",
    "server": {
      "port": 2368,
      "host": "0.0.0.0"
    },
    "database": {
        "client": "mysql",
        "connection": {
          "host": "localhost",
          "port": 3306,
          "user": "root",
          "password": "pass123456",
          "database": "ghostblog",
          "socketPath": "/var/run/mysqld/mysqld.sock"
        }
    },
    "mail": {
      "transport": "Direct"
    },
    "logging": {
      "transports": [
        "file",
        "stdout"
      ]
    },
    "process": "systemd",
    "paths": {
      "contentPath": "/var/lib/ghost/content"
    }

mymariadb/Dockerfile

代码语言:javascript
运行
复制
FROM mariadb:latest

EXPOSE 3306

ENV MYSQL_ROOT_PASSWORD=pass123436
ENV MYSQL_DATABASE=ghostblog

错误::

但这样我就明白了:

代码语言:javascript
运行
复制
ghost-container_1    | NAME: RollbackError
ghost-container_1    | CODE: ENOENT
ghost-container_1    | MESSAGE: connect ENOENT /var/run/mysqld/mysqld.sock
ghost-container_1    |
ghost-container_1    | level:normal
ghost-container_1    |
ghost-container_1    | OuterError: The server has encountered an error.
ghost-container_1    | RollbackError: connect ENOENT /var/run/mysqld/mysqld.sock

现在,我将socketPath包含在config.production.json中,因为没有它,我得到了:

代码语言:javascript
运行
复制
ghost-container_1    | NAME: RollbackError
ghost-container_1    | CODE: ECONNREFUSED
ghost-container_1    | MESSAGE: connect ECONNREFUSED 127.0.0.1:3306
ghost-container_1    |
ghost-container_1    | level:normal
ghost-container_1    |
ghost-container_1    | OuterError: The server has encountered an error.
ghost-container_1    | RollbackError: connect ECONNREFUSED 0.0.0.0:3306

我还确保在mariadb的配置中注释掉了‘bind’,因为这是我在googling搜索错误时看到的第一件事,我还尝试用config.production.json中的0.0.0.0或127.0.0.1替换localhost,在docker-compose.yml中也这样做,但是错误没有改变。

另外,我也经常做码头建设-无缓存和对接-合成-力量-重新创建,以确保我所做的更改是实际加载。

有人知道我做错了什么吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-26 09:41:12

您的数据库和幽灵都在不同的容器中,您可以创建网络以允许它们通过网络进行通信。

docker-compose.yml

代码语言:javascript
运行
复制
version: '3'

services:
  mariadb:
    image: mymariadb:latest
    restart: always
    ports:
      - 3306:3306
    # volumes:
    #   - ~/blog/mariadb:/var/lib/mysql
    networks:
        - web-network

  ghost:
    image: myghost:latest
    restart: always
    ports:
      - 2368:2368
    depends_on:
      - mariadb-container
    # volumes:
    #   - ~/blog/content:/var/lib/ghost/content
    networks:
        - web-network

networks:
  web-network:
    driver: bridge

ghost配置(仅数据库部件)

代码语言:javascript
运行
复制
"database": {
    "client": "mysql",
    "connection": {
      "host": "mariadb", // your database container's name in network
      "port": 3306,
      "user": "root",
      "password": "pass123456",
      "database": "ghostblog"
    }
},
票数 0
EN

Stack Overflow用户

发布于 2018-04-13 19:02:56

如果您正在使用nginx、letsencrypt、鬼怪和mariadb查看正在运行的docker环境,它可能会对您有所帮助:

资料来源

重要注记

现在有一个对接错误,当你试图从鬼:最新。如果你是从鬼:1.22.1-它工作。(您必须在修船厂-Compose.yml中更改它)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48971800

复制
相关文章

相似问题

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