MySQL间远程访问数据库

来源:互联网 发布:淘宝怎么找同款宝贝 编辑:程序博客网 时间:2024/05/01 01:10

最近在做一个项目的云架构


为了解决数据库访问热点问题,把原有的MySQL数据库一分为三,一主一从,另外将BI业务分离出一个独立数据库(负责集计和数据挖掘)。

设想很好,可实际操作的时候发现,BI库的一些主数据(如商品名称,地名)需要从原来的库读取。

还有些数据是组合式,需要从原来的库读取实时数据+BI库的统计数据得到 最新的统计数据。

为了尽量减少对原有代码的修改。(源代码太烂,实在不想碰)

采用类似于oracle dblink方案---federated


首先确认federated引擎是否打开

mysql> show engines
    -> ;
+--------------------+---------+----------------------------------------------------------------+--------------+------+-
-----------+
| Engine             | Support | Comment                                                        | Transactions | XA   |
Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+-
-----------+
| FEDERATED          | YES     | Federated MySQL storage engine                                 | NO           | NO   |
NO         |


要打开federated,windows环境下比较简单,在my.ini添加federated即可

[mysqld]
federated

最后在BI库添加要映射的表即可

mysql> create table remote_user_login(user_login_id int(8) not null auto_increment primary key,user_login_name varchar(3
2),user_login_password varchar(16)) engine=federated connection='mysql://myuser:password@192.XXX.XX.XX:3306/cp_test1/user_
login';


实际操作起来就和本地表一样,也可以进行DML操作。

不过事务管理应该是独立的。


0 0
原创粉丝点击