MySql在两台服务器上选择

时间:2014-08-25 15:37:46

标签: mysql

如何在两台服务器上实现这一目标?我使用MySQL和c#.net,插入完美,但现在我不知道如何做选择

server: 127.0.0.1
tbl_student
roll_no| stu_name
1         | abc
2         | def
3         | xyz 


Server:127.0.0.2
tbl_room
room_id| room_name
1           | A1
2           | A2
3           | A3


tbl_info (on server:127.0.0.2)
id | roll_no | room_id
1 | 1          |2
2 | 2          |3
3 | 3          |3


select i.id, i.roll_no, s.stu_name, r.room_name
from tbl_student as s, tbl_room as r, tbl_info as i
where i.roll_no = s.roll_no and i.room_id = r.room_id

2 个答案:

答案 0 :(得分:1)

我不知道您使用的是哪个版本。尝试对DB-Link进行研究。这是用于您需要的术语。

在快速研究中,我看到这是mysql开发组的一个开放票:     http://dev.mysql.com/worklog/task/?id=1150

答案 1 :(得分:0)

您需要使用FEDERATED Storage Engine将第二台服务器中的第一个表连接到第一台。

如果您的主服务器是:127.0.0.2 您可以映射服务器127.0.0.1中存在的表tbl_student 在另一台服务器中,在需要创建镜像表(伪代码)之前:

CREATE TABLE `tbl_student `(`roll_no` Int, stu_name VARCHAR(100))) ENGINE=FEDERATED
  CONNECTION='MYSQL://127.0.0.1:3306/dbname/tbl_student ';

现在您只能在主服务器上运行。

FEDERATED存储引擎支持SELECT,INSERT,UPDATE,DELETE和索引。它不支持ALTER TABLE或任何直接影响表结构的数据定义语言语句,而不支持DROP TABLE。当前实现不使用预准备语句。

FEDERATED表上的效果较慢。

欲了解更多信息: http://dev.mysql.com/doc/refman/5.0/en/federated-use.html

我希望你有所帮助