使用Navicat 进行MySql数据库同步功能
使用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数据库同步功能的更多相关文章
- Navicat for MYSQL 数据库手动同步方法
Navicat for MYSQL 数据库手动同步方法 数据库同步有两种类型,一是结构同步,一般是数据库表增删,或是表中字段的增删:二是数据同步,即是表里面的记录的增删. 现假设我要让本地数据 ...
- Navicat可视化MySQL数据库
Navicat可视化MySQL数据库 Navicat内部封装了所有的操作数据库的命令,用户只需要点击操作即可,无需书写sql语句. navicat能够充当多个数据库的客户端. 具体操作参考百度. py ...
- mysql数据库同步
mysql数据库同步 1.1. Master 设置步骤 配置 my.cnf 文件 确保主服务器主机上my.cnf文件的[mysqld]部分包括一个log-bin选项.该部分还应有一个server-i ...
- (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL ...
- mysql数据库分区功能及实例详解
分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解 一,什么是数据库分区 前段时间写过一篇 ...
- navicat连接MySQL数据库出现Authentication plugin 'caching_sha2_password的问题
1.以管理员身份运行cmd终端,cd 到mysql安装目录的bin文件夹下面 输入mysql -u root -p,回车键后输入密码登录mysql 依次输入一下三条命令: ALTER USER 'ro ...
- Navicat 连接MySQL数据库 报错2059
Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法 2059 - Authentication ...
- Navicat for MySQL用ssh功能连接远程数据库
转载自:http://holy2010.blog.51cto.com/1086044/518431 实现用本地的ssh隧道起到加密功能 在windows平台上运行Navicat for MySQL(h ...
- 实现两个Mysql数据库同步
一. 概述 MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...
- 【实操笔记】MySQL主从同步功能实现
写在前边: 这两天来了个需求,配置部署两台服务器的MySQL数据同步,折腾了两天查了很多相关资料,一直连不上,后来发现其实是数据库授权的ip有问题,我们用的服务器是机房中的虚拟机加上反向代理出来的,坑 ...
随机推荐
- 基于AIO架构smarthttp开发的完整MVC框架
基于AIO架构smarthttp开发的完整MVC框架 写了篇<基于jdk自带httpserver开发的最小完整MVC框架>,就再写篇AIO的MVC DEMO启动时间:0.1s(应该算少的吧 ...
- Exception: HOUR_OF_DAY: 0 -> 1
解决方案 将mysql链接中配置的 serverTimezone=Asia/Shanghai 改为 serverTimezone=GMT%2B8 Asia/Shanghai与GMT-8的区别 开发和运 ...
- Hugging News #0609: 最新代码生成模型 StarCoder+ 和 StarChat Beta 重磅发布!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- 【mongodb】pymongo使用
pymongo基本使用 import pymongo from bson.objectid import ObjectId # 连接方式1 client = pymongo.MongoClient(h ...
- [SDR] GNU Radio 系列教程(十五)—— GNU Radio GFSK 模块
目录 1 GFSK 背景知识 2 GNU Radio GFSK 模块参数详解 3 GNU Radio GFSK 模块简示例 4 本文视频教程 参考链接 教程列表 基础教程: 综合教程: 视频和博客 1 ...
- SpringBoot多模块项目搭建以及搭建基础模板
多模块项目搭建 目录 多模块项目搭建 1.父项目pom文件编辑 2.创建子模块 1.父项目pom文件编辑 <!--1.父工程 添加pom格式--> <packaging>pom ...
- uni-app阿里图标引用
@font-face { font-family: "iconfont"; /* Project id 2566540 */ src: url('~@/static/fonts/i ...
- 实现不限层级的Element的NavMenu
做管理后台开发的时候,需要用到Element的NavMenu组件,于是乎,翻开文档,大致是这样实现的. <el-menu> <el-menu-item index="1&q ...
- slot-具名插槽
定义组件:NamedSlot组件 <div class=""> <header> <slot name="header">& ...
- v-cloak指令用法
插值表达式存在的问题:'闪动' 如何解决该问题:使用v-cloak指令 解决该问题的原理:先隐藏,替换好值之后再显示最终的值 背后的原理:先通过样式隐藏内容,然后在内存中进行值得替换,替换好之后再显示 ...