SpringCloud(七)MySQL跨实例访问

业务场景:需要同时连接A、B、C三个数据库。

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

这个存储引擎的功能:就是将B、C配置到A中,通过A库的数据库连接,访问到B库和C库。 

(纯Java解决方案,可以考虑苞米豆的dynamic-datasource)

 

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

show engines;

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

建表的语句

参数和jdbc很像,主要就是配置数据库连接,创建一张表,连接上别的数据库。

CREATE TABLE xxx(...) ENGINE=FEDERATED CONNECTION='mysql://[name]:[password]@[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';

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

 

posted on 2020-04-05 18:01  疯狂的妞妞  阅读(880)  评论(0编辑  收藏  举报

导航