使用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. Linux 升级安装 Python 3

    百度飞桨 PaddlePaddle 2.4.0 => Python 3.7.4 PaddlePaddle 2.4.1+ => Python 3.9.0 下载 # 安装依赖 [root@lo ...

  2. Docker 删除 images

    1 查看本地已用镜像文件 [root@localhost web]# docker images 2.删除镜像 Redis [root@localhost web]# docker rmi 59589 ...

  3. 【OpenSSL】​Visual Studio 2019配置OpenSSL 3.0开发环境

    OpenSSL从1.0.2版本升级为3.0.3版本后,需要对代码进行重构.如果不可用的代码太多,需要重新开一个项目.重新配置开发环境. [第一步]登录http://slproweb.com/,下载Wi ...

  4. SpringCloud Alibaba技术栈(二)Nacos服务治理

    源码-笔记:Code for Github 第二章 Nacos服务治理 1. 模块设计与实现 ①首先创建maven项目,此项目作为父工程.把src文件夹删掉,修改pom文件,添加依赖版本控制,控制子模 ...

  5. docker 容器ip查看及 网络配置区别

    本文为博主原创,未经允许不得转载: 1. 查看容器ip: 方法一:查看所有容器的ip docker inspect --format='{{.Name}} - {{range .NetworkSett ...

  6. spring启动流程 (6完结) springmvc启动流程

    SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性).在实 ...

  7. springboot启动流程 (2) 组件扫描

    SpringBoot的组件扫描是基于Spring @ComponentScan注解实现的,该注解使用basePackages和basePackageClasses配置扫描的包,如果未配置这两个参数,S ...

  8. 30-组合可编程逻辑器件-PLD

    组合可编程逻辑器件 1.PLD的结构 1.1 结构 1.2 表示方法 实心点表示连接,但是不可编程 ×点表示连接,但是可以编程 2.编程技术 2.1 熔丝工艺 每个输入线连接二极管和保险丝 2.2 电 ...

  9. CSS : div 高度为0的三种情况

    1, css 样式没正确绑定 ( 也就是没有设置高度 ) 2, 子元素 浮动 ( float ) 3, 子元素 绝对定位 ( position : absolute )

  10. [转帖]OceanBase 中租户管理

    https://zhuanlan.zhihu.com/p/464504887 概述 租户的概念类似于传统数据库的数据库实例.租户也叫实例,拥有一定的资源能力(如CPU.内存和空间).租户下可以建立数据 ...