mysql - 两个 mariadb 实例在 docker 中使用相同的持久存储

标签 mysql docker kubernetes mariadb

我想启动两个具有相同持久存储的 maria-db pod,并且我应该能够访问实例的任何时间点和它们之间的数据应该是同步的。

我正在尝试在 kubernetes 中使用相同的卷持久存储启动两个 mariadb 实例。我能够启动这两个实例。我正在执行以下步骤。

  1. 创建持久卷
  2. 创建持久卷声明
  3. 使用相同的声明名称从 mariadb-instance-1 开始。
  4. 使用相同的存储声明名称启动 mariadb-instance-2。
  5. 为两个实例创建两个服务以从外部访问。

我可以访问 instance-1,但是当我尝试访问 instance-2 时出现错误。 MySQL 错误:无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器。

请找到附件中的 dockerfiles。

我们将不胜感激。

请在下面找到我用于创建部署的数据库和存储 yaml 文件的 git 存储库。

https://github.com/chandan493/db-as-docker

最佳答案

您不能在同一个存储上运行两个 MariaDB 引擎,如果我没理解错的话,这就是您所期望的。即使您将 RWX 卷挂载在两个 pod 上,如果您将容器的/var/lib/mysql 放在同一个位置的两个单独的 MaraiaDB pod 中,也会导致数据库引擎之间发生冲突。对于 MariaDB 集群查找 MariaDB Galera - MariaDB 的几乎完全同步的复制。但是您需要运行三个数据库引擎才能使它有意义。

关于mysql - 两个 mariadb 实例在 docker 中使用相同的持久存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49361811/

相关文章:

php - 学习 PHP PDO.. 想知道在涉及很多查询时使用它的正确方法

postgresql - 容器的镜像更新到最新后,Postgres 容器崩溃并显示 `database files are incompatible with server`

kubernetes - 如何使用 istio virtualservice 将请求转发到 cdn 等公共(public)服务?

php - 如何显示不存在或存在的结果

php - 我应该如何在我的 php 文件和 html 文件中包含我的 json 代码

用于按分隔符分割字符串的 mySQL 存储过程

linux - 带有 docker ./start.sh 的 Azure 代理没有这样的文件或目录

docker - 如何在docker上的nginx中设置大量动态虚拟主机?

AWS 上的 kubernetes : certificate signed by unknown authority

amazon-ec2 - 主节点无法访问 Pod IP