使用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有问题,我们用的服务器是机房中的虚拟机加上反向代理出来的,坑 ...
随机推荐
- Docker 启动失败 (code=exited, status=1/FAILURE)错误解决办法
ob for docker.service failed because the control process exited with error code. See "systemctl ...
- 阿里云云通信作为 CPaaS 全球代表服务商,上榜 Gartner 报告
近日,国际知名研究机构Gartner发布2022年<CPaaS市场指南(Market Guide for Communications Platform as a Service, 2022)& ...
- 制作PE工具箱
事前准备: 能上网的电脑 x1 台 大于8G的U盘 x一个(如果需要储存安装镜像的话,如果不需要的话大于1G即可) 一.下载PE工具箱 推荐使用WEPE工具箱,无广告无推广.不推荐老X桃,大X菜,大X ...
- CompletableFuture 测试类
package com.example.apidemo.completableFutrue; import java.util.Random; import java.util.concurrent. ...
- 【教程】步兵 cocos2dx 加密和混淆
文章目录 摘要 引言 正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA 重签名操作步骤 总结 参考资料 摘要 本篇博客介绍了针对 iOS 应用中的 Lua 代码进行加密和混淆的相关技术.通过对 ...
- freeswitch的事件引擎实现分析
概述 freeswitch是由事件驱动的,fs内部有各种事件来标识状态的变化包括呼叫的变化.配置的变化.号码的变化等等. 而一个框架内的事件引擎需要实现哪些基本的功能呢? 让我们来看一下fs的事件引擎 ...
- 每天学五分钟 Liunx 0110 | 服务篇:守护进程 systemd
有些进程会在系统上运行较长时间,如前面的 Hello World 程序运行时产生的进程.有些进程运行瞬间就结束了,如执行 ps 命令产生的进程,也有的进程会常驻在内存中,提供相应的服务,这样的进程称为 ...
- 解决在Edge浏览器中使用不了(找不到)new bing的情况
1.问题 我们有时候看不到下图圈出部分的信息,无法找到New Bing的入口(这边是空的) 2.解决方式 1.选择右上角的三条杠,并选择其中的settings 2.将其中的country一项改为外国即 ...
- 【MicroPython】用 c 添加接口 -- 给 module 添加 function
[来源]https://www.eemaker.com/micropython-c-modfunc.html
- Nginx 配置文件备忘单
Nginx 是用于 Web 服务.反向代理.缓存.负载平衡.媒体流等的开源软件.在这篇文章中,我将提到一些我们经常使用的 Nginx 配置. 监听端口 server { Standard HTTP P ...