通过选择命令创建表的Mysql集群复制问题

Posted

技术标签:

【中文标题】通过选择命令创建表的Mysql集群复制问题【英文标题】:Mysql Cluster replication issue on create table by select command 【发布时间】:2016-10-11 00:13:54 【问题描述】:

我在 mysql 集群上的从属复制有问题。

当我创建表时选择为CREATE TABLE tmp1 AS SELCT * FROM tmp2 可以创建表,但是sql没有记录在binlog中,也没有复制到slave。

但是如果我按定义创建表或类似:CREATE TABLE tmp1 LIKE tmp2" OR "CREATE TABLEtmp1(idint(11) NOT NULL ),则sql命令可以记录在binlog中,并将复制到slave。

这个有设置吗?

我的 mysql 集群版本是 5.6.31-ndb-7.4.12-cluster-gpl-log,我的默认引擎是 ndbcluster。

【问题讨论】:

这可能是您遇到的dev.mysql.com/doc/refman/5.7/en/… 【参考方案1】:

如果你想复制你的表,你必须添加 ENGINE=ndbcluster 像这样:CREATE TABLE tmp1 AS SELCT * FROM tmp2 ENGINE=ndbcluster;

对于现有表,您可以使用:ALTER TABLE tbl_name ENGINE=NDBCLUSTER;

更多信息在这里:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-example-data.html

祝你好运!

【讨论】:

以上是关于通过选择命令创建表的Mysql集群复制问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql主主复制,只因为mycat集群需要

MySQL命令:约束

mysql-学习-10-20170531-复制类型的选择

吴裕雄 26-MySQL 复制表

mysql主从复制与读写分离

Mysql-高可用集群-介绍