【问题标题】:Docker multiple MySQL containers with persistenceDocker 具有持久性的多个 MySQL 容器
【发布时间】:2016-01-06 15:03:20
【问题描述】:

我正在尝试设置两个 MySQL 容器和一个纯数据容器,以便使用 Docker Compose 持久化 MySQL 数据。

这里是 docker-compose.yml:

db1:
  image: mysql
  volumes_from:
    - data
  environment:
    - MYSQL_ROOT_PASSWORD=password

db2:
  image: mysql
  volumes_from:
    - data
  environment:
    - MYSQL_ROOT_PASSWORD=password

data:
  image: mysql
  volumes:
    - /var/lib/mysql
  entrypoint: /bin/echo

但是,两个 mysql 守护进程都有冲突,因为它们需要一个单独的数据目录:

[Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
[ERROR] InnoDB: Unable to lock ./ibdata1 error: 11

因此,我有两个问题:

  1. 如何为多个 MySQL 容器正确实现 data-only 容器?
  2. 如何将多个 MySQL 容器的纯数据容器实现为具有 Master-Master 复制和负载平衡器的集群?

【问题讨论】:

    标签: mysql docker docker-compose


    【解决方案1】:

    据我所知,MySQL 守护进程会请求数据文件的排他锁。然后,此锁将阻止第二个实例启动,这可能解释了您所看到的错误。

    也许尝试做一个主从装备,你有两个不同的卷,但从 (db2) 绑定到 db1?

    【讨论】:

      猜你喜欢
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多