您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SpringCloud(七)MySQL跨实例访问

bubuko 2022/1/25 20:00:05 mysql 字数 2741 阅读 607 来源 http://www.bubuko.com/infolist-5-1.html

有时候,利用数据库本身的一些特性,可以解决相当多的问题,Java里常常说分布式、集群,实际上针对这些问题,数据库本身也有一套完整的解决方案,并不一定非要通过代码解决。 在我们开发过程中,难免会产生这样一个需求:需要同时连接A、B、C三个数据库。 这时候,可是视情况,看看是否使用FEDERATED存储 ...

有时候,利用数据库本身的一些特性,可以解决相当多的问题,Java里常常说分布式、集群,实际上针对这些问题,数据库本身也有一套完整的解决方案,并不一定非要通过代码解决。

 

在我们开发过程中,难免会产生这样一个需求:需要同时连接A、B、C三个数据库。

这时候,可是视情况,看看是否使用FEDERATED存储引擎。

 

数据表映射,如同Oracle中的DBlink一般,使用FEDERATED进行跨实例来进行数据查询。效果如同Gateway,通过一个数据库连接,即可获取其它数据库的数据。

 

输入show engines;可以查看MySQL是否支持FEDERATED,默认是不支持的

show engines;

在windows下只需要在mysql的配置文件 my.ini 最末尾加上一句 federated ,然后重启mysql即可。
如果找不到my.ini,文件夹地址输入框输入%ProgramData%,找到MySQL文件夹。

建表的语句

CREATE TABLE xxx(...) ENGINE=FEDERATED CONNECTION=mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]

例:

CREATE TABLE `t_work_task` (
  `id` varchar(36) NOT NULL,
  `work_date_end` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT=作业任务 CONNECTION=mysql://rgyx_hlj:rgyx_hlj@127.0.0.1/rgyx_hlj/t_work_task;

注意:本质上,只是通过一个数据库,连接上了另一个,只是方便编程,并没有减轻数据存储的压力

SpringCloud(七)MySQL跨实例访问

原文:https://www.cnblogs.com/chenss15060100790/p/12638292.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶