ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 触发器同步远程服务器上数据库

2021-10-26 15:00:36  阅读:219  来源: 互联网

标签:COMMENT 触发器 DEFAULT 18 double Sample mysql 服务器 NULL


要想实现本地数据库和远程数据库中的某一些表实时同步数据。需要在本地数据库创建一个类似于映射表

1、检查服务器A上的mysql是否支持fedrated数据引擎

mysql> show engines;

查看mysql的 FEDERATED 数据引擎,一般都是关闭状态,需要在

配置my.ini文件

[mysqld]

federated #添加该属性

[client]
port=3306
default-character-set=utf8
[mysqld]
# 开启事件
event_scheduler=ON
# 设置为自己的MYSQL的安装目录
basedir=D:\mysql-5.7.29-winx64
# 设置为自己的MYSQL的数据目录
datadir=D:\mysql-5.7.29-winx64\data
port=3306
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION
#开启查询缓存
explicit_defaults_for_timestamp=true
# skip-grant-tables
federated 

2、在服务器A上创建federated引擎表,该引擎表与服务器B上要更新的表结构相同

比如我想把本地的某一个数据表(t_rebiao)数据同步到远程服务器的数据表(t_rebiao)中,需要在本地创建一个远程数据表的映射表"bak_rebiao"

CREATE TABLE `bak_rebiao`  (
  `Sample_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '自动增长的编号',
  `Sample_DateTime` datetime(0) NULL DEFAULT NULL COMMENT '采样日期时间',
  `Sample_JinshuiWendu` double(18, 2) NULL DEFAULT NULL COMMENT '进水温度',
  `Sample_HuishuiWendu` double(18, 2) NULL DEFAULT NULL COMMENT '回水温度',
  `Sample_ShunshiLiuliang_Jinshui` double(18, 2) NULL DEFAULT NULL COMMENT '进水管瞬时流量',
  `Sample_LeijiLiuliang_Jinshui` double(18, 2) NULL DEFAULT NULL COMMENT '进水管累计流量',
  `Sample_ShunshiReliang_Jinshui` double(18, 2) NULL DEFAULT NULL COMMENT '进水管瞬时热量',
  `Sample_LeijiReliang_Jinshui` double(18, 2) NULL DEFAULT NULL COMMENT '进水管累计热量',
  `Sample_ShunshiLiuliang_Huishui` double(18, 2) NULL DEFAULT NULL COMMENT '回水管瞬时流量',
  `Sample_LeijiLiuliang_Huishui` double(18, 2) NULL DEFAULT NULL COMMENT '回水管累计流量',
  `Sample_ShunshiReliang_Huishui` double(18, 2) NULL DEFAULT NULL COMMENT '回水管瞬时热量',
  `Sample_LeijiReliang_Huishui` double(18, 2) NULL DEFAULT NULL COMMENT '回水管累计热量',
  `Sample_JinshuiYali` double(18, 2) NULL DEFAULT 0.00 COMMENT '进水压力',
  `Sample_HuishuiYali` double(18, 2) UNSIGNED ZEROFILL NULL DEFAULT 000000000000000.00 COMMENT '回水压力',
  `Sample_Code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '计量点代码',
  PRIMARY KEY (`Sample_ID`) USING BTREE,
  INDEX `IX_Sample_Code`(`Sample_Code`) USING BTREE COMMENT '计量点代码',
  INDEX `IX_Sample_DateTime`(`Sample_DateTime`) USING BTREE COMMENT '采集时间'
) ENGINE=FEDERATED CONNECTION='mysql://user:password@ip:port/db_name/table_name';

说明:CONNECTION='mysql://user:password@ip:port/db_name/table_name';对应的参数要根据自己需要修改

user:数据库账号
password:数据库登录密码
ip:远程服务器ip
port:数据库端口
db_name:数据库名称
table_name:数据表名称

3、在服务器A 上创建基于本地表的触发器

BEGIN

  INSERT INTO `bak_rebiao` SELECT * FROM `t_rebiao` WHERE Sample_ID = NEW.Sample_ID;

    END

 

 

标签:COMMENT,触发器,DEFAULT,18,double,Sample,mysql,服务器,NULL
来源: https://www.cnblogs.com/ckfuture/p/15465807.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有