我有两个数据库连接到同一个网络(但服务器不同),一个在MySql中,一个在DB2中(AS / 400)。从我正在开发的Windows客户端应用程序,我需要连接到位于两个数据库上的表,但我希望客户端只能访问MySql服务器。
我需要在MySql中拥有位于DB2数据库中的某个表的“副本”,以便mysql充当客户端和db2之间的“桥梁”。我正在尝试使用联合表,但它似乎只能在两个mysql数据库之间工作。如果有帮助,我可以通过ODBC驱动程序访问db2数据库。
为了更好地解释:
Now:
C MySql DB2
L ------ table1
I ------ table2
E table3
N table4
T
I need:
C MySql DB2
L ------ table1
I ------ table2
E ------ table3 ------ table3
N ------ table4 ------ table4
T ^
|___ How?
引用模式,每次客户端尝试在MySql中查询“table3”时,MySql服务器应首先向DB2查询table3,然后将表返回给客户端。是否可以使用MySql?
答案 0 :(得分:0)
不,mysql中没有这样的功能可以让你连接到另一种类型的数据库。联合表引擎只能连接到远程mysql数据库。
你必须研究外部工具(mysql proxy,mysql datacontroller?)才能达到预期的效果。如果有任何工具支持与DB2的连接。
从技术上讲,您可以在可以连接到DB2数据库的现有联合表引擎上创建自己的表引擎,但这似乎对项目来说太过分了。
您可能必须实现一种应用程序服务器,它可以连接到两个数据库,而客户端只能与应用程序服务器层联系。