「MySQL」- 表结构同步

主题:介绍MySQL表结构同步方法。

MySQL测试环境与生产环境的表结构同步方法。

方法一、Navicat

使用 navicat,“工具” => “结构同步”。
这个“结构同步“可以生成“差异SQL”,勾选要同步的内容,执行”运行“即可同步到生产环境。这里不再赘述。

注意: Navicat的同步方式是直接运行SQL语句。额,这么做并不好因,为DDL操作会锁表,大数据量的时候就尴尬了。推荐使用:pt-online-schema-change

方法二、mysqldiff

(1). 首先比较数据库结构差异。

比较有很多方法,下面是我知道的:

  • mysqldiff。关于mysqldiff的使用请查看:《mysqldiff》
  • 额,也可以:导出表结构;使用diff比较;。
  • 使用Navicat的”结构同步“,直接生成差异SQL。

(2). 然后执行差异SQL语句,修改表结构。

建议使用pt-online-schema-change(关于pt-online-schema-change查看:《pt-online-schema-change》)进行结构同步。

之所以使用pt-online-schema-change的原因只是因为DDL的锁表太让人尴尬了。你要是坚持使用DDL命令的话,等你吃亏的时候你就知道了。

参考文献

5.7 mysqldiff — Identify Differences Among Database Objects