MariaDB Galera 集群:复制问题
MariaDB Galera Cluster: issue with replication
这是我的设置:
- 4 个虚拟机(运行 在 CentOS 7 上)
- VM1 with mariadb-client 和 maxscale 用于负载平衡(我试过 haproxy,结果是一样的)。 httpd 和 php(我正在使用 WordPress 安装进行测试)
- 带有 mariadb 服务器、galera、rsync 的 VM2、VM3、VM4
- 软件安装
- 在所有 4 个虚拟机上添加存储库 "curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash"
- 在 VM2、VM3、VM4 上安装 MariaDB 服务器(这包括 galera 和所有必需的软件)
- 正在 VM1 上安装 maxscale 和 MariaDB 客户端
- 编辑配置文件
- 在 VM2、VM3、VM4 上我添加了:
https://gist.github.com/yarko686/5adb7b24784c4c3c24a526519623d930
至 /etc/my.cnf.d/server.cnf
- 在 VM1 上,我已将以下行添加到 /etc/maxscale.cnf https://gist.github.com/a67e94afaa4ecc57ccb985d897ee3e87.git
- 正在启动集群
- 我在 VM2 上执行了 galera_new_cluster
- 在 VM3 和 VM4 上我执行了 systemctl start mariadb
- 检查集群
- 在 VM2 上,我正在使用 mysql -u root 访问 mysql,然后执行:
显示全局状态,如 'wsrep_cluster_size';
- 我收到这个输出https://gist.github.com/yarko686/a63c925b3275d239f38d50f0651e45ef这意味着集群中有3台机器
- 正在创建 maxscale 用户和 wordpress 用户
- 使用 mysql -u root 登录到 VM2 上的 MySQL CLI 并执行以下命令
https://gist.github.com/yarko686/950ea62f79638a6f293c28b99dd19f7b
- 对于 WordPress 用户,我使用相同的命令,除了 .。在这些情况下,我使用 wordpress_db.* 代替。
- 主要问题。
- 导入 WordPress 数据库后,仅在 VM2 上正确创建。在 VM3 和 VM4 上创建了数据库和 tables,但是由于某种原因它们是空的。
- 如果我使用我的 wordpress 用户通过 MySQL CLI 访问 wordpress 数据库并使用一些数据创建新的 table 它会被复制,但是当我将用户添加到我的 wp_users table(或通过 wp-admin 添加用户)它不会被复制。记录仅在 VM2 上创建,而不在 VM3 和 VM4 上创建。
检查表是否是 innodb 而不是 isam。
我知道在我的设置中,当我导入旧的 isam 表时,这些表会出现,但数据不会复制。我必须将所有表转换为 innodb。
这是我的设置:
- 4 个虚拟机(运行 在 CentOS 7 上)
- VM1 with mariadb-client 和 maxscale 用于负载平衡(我试过 haproxy,结果是一样的)。 httpd 和 php(我正在使用 WordPress 安装进行测试)
- 带有 mariadb 服务器、galera、rsync 的 VM2、VM3、VM4
- 软件安装
- 在所有 4 个虚拟机上添加存储库 "curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash"
- 在 VM2、VM3、VM4 上安装 MariaDB 服务器(这包括 galera 和所有必需的软件)
- 正在 VM1 上安装 maxscale 和 MariaDB 客户端
- 编辑配置文件
- 在 VM2、VM3、VM4 上我添加了: https://gist.github.com/yarko686/5adb7b24784c4c3c24a526519623d930 至 /etc/my.cnf.d/server.cnf
- 在 VM1 上,我已将以下行添加到 /etc/maxscale.cnf https://gist.github.com/a67e94afaa4ecc57ccb985d897ee3e87.git
- 正在启动集群
- 我在 VM2 上执行了 galera_new_cluster
- 在 VM3 和 VM4 上我执行了 systemctl start mariadb
- 检查集群
- 在 VM2 上,我正在使用 mysql -u root 访问 mysql,然后执行: 显示全局状态,如 'wsrep_cluster_size';
- 我收到这个输出https://gist.github.com/yarko686/a63c925b3275d239f38d50f0651e45ef这意味着集群中有3台机器
- 正在创建 maxscale 用户和 wordpress 用户
- 使用 mysql -u root 登录到 VM2 上的 MySQL CLI 并执行以下命令 https://gist.github.com/yarko686/950ea62f79638a6f293c28b99dd19f7b
- 对于 WordPress 用户,我使用相同的命令,除了 .。在这些情况下,我使用 wordpress_db.* 代替。
- 主要问题。
- 导入 WordPress 数据库后,仅在 VM2 上正确创建。在 VM3 和 VM4 上创建了数据库和 tables,但是由于某种原因它们是空的。
- 如果我使用我的 wordpress 用户通过 MySQL CLI 访问 wordpress 数据库并使用一些数据创建新的 table 它会被复制,但是当我将用户添加到我的 wp_users table(或通过 wp-admin 添加用户)它不会被复制。记录仅在 VM2 上创建,而不在 VM3 和 VM4 上创建。
检查表是否是 innodb 而不是 isam。 我知道在我的设置中,当我导入旧的 isam 表时,这些表会出现,但数据不会复制。我必须将所有表转换为 innodb。