使用Navicat 进行MySql数据库同步功能

作者:胡德安

准备:

打开Navicat管理工具(比如Navicat Premium 15管理工具)

两个数据库第一个是源数据库A和要被同步的目标数据库B

1、鼠标左键选中源数据库A

2、左键点击菜单里的工具,然后在弹出的列表里选择《结构同步》

如下图所示:

3、在弹出的界面里在目标哪里连接选择被同步的数据库连接地址和数据库选择被同步数据库的数据库名称

4、然后点击比对

如下图所示

5、点击比对后会弹出对话框,正在比对数据库,慢慢等待即可(如下图所示)

6、比对结束后,会弹出界面,总共有四个

(1)要修改的对象

(2)要创建的对象

(3)要删除的对象

(4)没有操作(如下图所示)

7、选择确定要同步的对象后,点击上图页面的部署,会弹出下面的页面,大致看看部署的脚本,然后点击运行。(一般先选择要创建的对象,进行同步,同步完成后再选择要删除的对象或要修改对象的进行具体分析后进行同步,具体原因在最后的重点注意里提到)

8、会弹出如下页面,慢慢等待即可

9、最终执行完的页面应该是(如下图所示)

10、到此数据库同步功能结束、点击关闭即可

重点注意:第六步里同步功能的要修改的对象这里,比如所下图的要修改对象的bed表,我把源数据库的SubHosp字段改成SubHospSubHosp或者其他名称的字段比如我的名字hudean,点击同步后:我们看看DDL比对

源数据库的DDL

CREATE TABLE `sinodb`.`bed`  (

`Id` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'UUID()' COMMENT ' 主键',

`WardCode` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '病区代码',

`BedNum` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '床号',

`CreateTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '创建时间',

`SubHospSubHosp` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0001' COMMENT '院区代码',

PRIMARY KEY (`Id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

目标数据库的DDL

CREATE TABLE `test123`.`bed`  (

`Id` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'UUID()' COMMENT ' 主键',

`WardCode` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '病区代码',

`BedNum` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '床号',

`CreateTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '创建时间',

`SubHosp` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0001' COMMENT '院区代码',

PRIMARY KEY (`Id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

然后看看部署脚本:

ALTER TABLE `test123`.`bed` DROP COLUMN `SubHosp`;

ALTER TABLE `test123`.`bed` ADD COLUMN `SubHospSubHosp` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0001' COMMENT '院区代码' AFTER `CreateTime`;

这里明显看出是先删除SubHosp字段再添加SubHospSubHosp字段,所以对要修改对象这里的每个表都应该看看,修改表字段名称的,一般要我们手动执行修改表字段名称的sql语句:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

要删除的对象:同理我把源数据库的Bed表的表名改成beds后会产生要创建的对象Beds和要删除的对象Bed

所以设计数据库一定要仔细斟酌,尽量设计好表之后,不要修改表名和字段名(修改后一定要单独列出来修改语句)

 

使用Navicat 进行MySql数据库同步功能的更多相关文章

  1. Navicat for MYSQL 数据库手动同步方法

    Navicat for MYSQL 数据库手动同步方法     数据库同步有两种类型,一是结构同步,一般是数据库表增删,或是表中字段的增删:二是数据同步,即是表里面的记录的增删. 现假设我要让本地数据 ...

  2. Navicat可视化MySQL数据库

    Navicat可视化MySQL数据库 Navicat内部封装了所有的操作数据库的命令,用户只需要点击操作即可,无需书写sql语句. navicat能够充当多个数据库的客户端. 具体操作参考百度. py ...

  3. mysql数据库同步

    mysql数据库同步  1.1. Master 设置步骤 配置 my.cnf 文件 确保主服务器主机上my.cnf文件的[mysqld]部分包括一个log-bin选项.该部分还应有一个server-i ...

  4. (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库

    场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL  ...

  5. mysql数据库分区功能及实例详解

    分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解   一,什么是数据库分区 前段时间写过一篇 ...

  6. navicat连接MySQL数据库出现Authentication plugin 'caching_sha2_password的问题

    1.以管理员身份运行cmd终端,cd 到mysql安装目录的bin文件夹下面 输入mysql -u root -p,回车键后输入密码登录mysql 依次输入一下三条命令: ALTER USER 'ro ...

  7. Navicat 连接MySQL数据库 报错2059

    Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法 2059 - Authentication ...

  8. Navicat for MySQL用ssh功能连接远程数据库

    转载自:http://holy2010.blog.51cto.com/1086044/518431 实现用本地的ssh隧道起到加密功能 在windows平台上运行Navicat for MySQL(h ...

  9. 实现两个Mysql数据库同步

    一.     概述  MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...

  10. 【实操笔记】MySQL主从同步功能实现

    写在前边: 这两天来了个需求,配置部署两台服务器的MySQL数据同步,折腾了两天查了很多相关资料,一直连不上,后来发现其实是数据库授权的ip有问题,我们用的服务器是机房中的虚拟机加上反向代理出来的,坑 ...

随机推荐

  1. 火山引擎 DataLeap 构建Data Catalog系统的实践(二):技术与产品概览

    技术与产品概览 架构设计 元数据的接入 元数据接入支持T+1和近实时两种方式 上游系统:包括各类存储系统(比如Hive. Clickhouse等)和业务系统(比如数据开发平台.数据质量平台等) 中间层 ...

  2. Mindjet MindManager 拖动页面

    常规的软件是按住空格建+鼠标左健 进行拖放,但 MindManager 不支持,如何对Mindjet MindManager 拖动页面? 按住 鼠标右键 直接拖拽 配合 Ctrl+滚轮 放大缩小,一起 ...

  3. Spring Boot Admin 授权配置

    Admin 服务端配置 添加 POM 引用 <dependency> <groupId>org.springframework.boot</groupId> < ...

  4. Hugging Face 入选 Time《时代周刊》2023 全球前 100 最具影响力的公司

    喜报 Hugging Face 入选 Time<时代周刊>2023 全球前 100 最具影响力的公司 继续为梦想努力 继续为开源贡献 榜单链接: https://time.com/100c ...

  5. 《Function Programming in C++》

    说明 <Functional Programming in C++>书中代码练习测试以及一些笔记,部分代码需要用到C++20可以使用在线编译器编译代码 地址:https://coliru. ...

  6. JSP | JSP 动作详解

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本篇学习自:C语言中文网,部分内容转载仅供学习使用. \[QAQ \] JSP 动作利用 XML ...

  7. Linux Page Cache调优在Kafka中的应用

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/MaeXn-kmgLUah78brglFkg作者:Yang Yijun 本文主要描述Linux ...

  8. 版本升级 | v1.0.11 上线,你的需求被翻牌了吗?

    叮咚-综合我们接到的各种用户反馈,OpenSCA 项目组在 1.0.10 的基础上迭代了 1.0.11 版本 升级功能 优化 Java 解析逻辑 支持打印结果概览及常见报错信息到终端界面 支持输出 C ...

  9. 【有奖体验】AIGC小说创作大赛开启!通义千问X函数计算部署AI助手

    一个 AI 助手到底能做什么? 可以书写小说 可以解析编写代码 可以鼓舞心灵 提供职业建议 还有更多能力需要您自己去探索.接下来我们将花费 5 分钟,基于函数计算X通义千问部署一个 AI 助手,帮你撰 ...

  10. 【收藏】Stable Diffusion 制作光影文字效果

    大家对于最近 Stable Diffusion 不断出新的视觉"整活"印象都很深刻,很多人对最近比较流行的制作光影文字很感兴趣,制作光影文字可以作为进阶 Stable Diffus ...