mysql不同服务器上数据库关联

zilaishuichina 2009-11-25 08:19:01
现有两台MYSQL数据库
一台是192.168.1.1 端口3306 上有数据库DB1 有表TABLE1
一台是192.168.1.2 端口3307 上有数据库DB2 有表TABLE2
192.168.1.1远程连接192.168.1.2数据库所使用的用户名root1 密码root1
192.168.1.2远程连接192.168.1.1数据库所使用的用户名root2 密码root2
现在想对 TABLE1 和 TABLE2 两张表进行关联查询 请问SQL应该怎么实现
...全文
567 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这不是跨数据库,这是跨服务器 了。
zilaishuichina 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 acmain_chm 的回复:]
引用请问下这个configure是指什么 修改my.ini 还是指在WINDOWS的服务中 启动上面有个参数文本框 在里面填?

从源代码编译MYSQLD。EXE的时候。

建议你先试一下 "在你的启动命令中加上 --federated"


[/Quote]


算了 放弃了 本来想着用关联查询会方便一点 我还是老老实实的在程序来解决这种关联得问题吧 向你所给出来的这种解决方案 感觉太依赖整个的运行环境 局限性太大 如果哪天想换数据库 甚至是不同数据库产品之间的关联 又得再想办法解决 总之谢谢你了
ACMAIN_CHM 2009-11-26
  • 打赏
  • 举报
回复
[Quote]请问下这个configure是指什么 修改my.ini 还是指在WINDOWS的服务中 启动上面有个参数文本框 在里面填?[/Quote]

从源代码编译MYSQLD。EXE的时候。

建议你先试一下 "在你的启动命令中加上 --federated"

zilaishuichina 2009-11-26
  • 打赏
  • 举报
回复
FEDERATED 后面是 NO 貌似是不支持这种引擎

我查了下 “要允许这个存储引擎,当你构建MySQL时请使用--with-federated-storage-engine来configure”。

请问下这个configure是指什么 修改my.ini 还是指在WINDOWS的服务中 启动上面有个参数文本框 在里面填?

ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
手册上的说法。

you must start the MySQL server binary using the --federated option.

在你的启动命令中加上 --federated
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复


mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MyISAM | YES | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

mysql>


看看有没有?
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
网上下的 版本是5.0的 装好之后弹出来一个配置的窗口 下一步一直到完成 没有找到哪一步是设置表类型的
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
[Quote]SQL执行错误 #1289
The 'FEDERATED' feature is disabled;
you need MySql built with 'FEDERATED' to have it working.[/Quote]

你是怎么安装的?编译的时候是不是没有选择 FEDERATED 功能。
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
SQL执行错误 #1289
The 'FEDERATED' feature is disabled;
you need MySql built with 'FEDERATED' to have it working.
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
贴一下你的提示信息
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 acmain_chm 的回复:]
如果你的原表是INNODB  也是被 FEDERATED 支持的
[/Quote]

我在192.168.1.1上建立的TABLE2 无法被创建成FEDERATED
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
查一下你db2 上的日志。看看你有没有联上。
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
尝试了 但是结果还是空的 我把数据库放在同一台服务器上时 是能查询到结果的
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
如果你的原表是INNODB 也是被 FEDERATED 支持的
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复

[Quote]CONNECTION='mysql://192.168.1.2:3307/DB2/TABLE2'这段不需要连接用的用户名和密码么[/Quote]

哦忘了加上密码了,平时ROOT的密码都一样的。
改成如下
CONNECTION='mysql://root2:root2@192.168.1.2:3307/DB2/TABLE2';
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
还有 ENGINE=FEDERATED 这个报错 我用的是INNODB
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
[Quote]这么做的话 当192.168.1.2上的TABLE2数据有更新的话 192.168.1.1上的TABLE2也能得到即时更新么 [/Quote]

会,你可以把它当做一个链接表。
zilaishuichina 2009-11-25
  • 打赏
  • 举报
回复
请问下楼上

这么做的话 当192.168.1.2上的TABLE2数据有更新的话 192.168.1.1上的TABLE2也能得到即时更新么

CONNECTION='mysql://192.168.1.2:3307/DB2/TABLE2'这段不需要连接用的用户名和密码么

我尝试了一下 创建出来的TABLE2是空的 关联查询出来的结果也是空的
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
没有办法直接进行JOIN查询。

你可以在DB1中建立一个 FEDERATED 指向这个 DB2.table2 如下,然后就象在同一数据库中DB1中操作即可。


CREATE TABLE TABLE2 (
id INT(20) NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://192.168.1.2:3307/DB2/TABLE2';

56,942

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧