数据库A,表a;另一台主机数据库B,表b;
如何在A中连接B,实现如下功能:
select * 
from   a a,
       b@B b
where  a.id=b.id即在Mysql中可以实现@B的功能吗?Oracle中是可以的。如果可以,又该如何设置?

解决方案 »

  1.   

    MYSQL不支持链接服务器
    安装 FEDERATED 是个存储引擎
    CREATE TABLE xxx_b ( 
        id    INT(20) NOT NULL AUTO_INCREMENT, 
        username  VARCHAR(32) NOT NULL DEFAULT '', 
        password  VARCHAR(32), 
        PRIMARY KEY  (id) 

    ENGINE=FEDERATED 
    CONNECTION='mysql://broot:[email protected]:3306/dbname/b表'; select * from xxx_b  访问 
      

  2.   

    MYSQL中没有DB LINK。
    只能在表的级别上进行利用FEDERATED存储引擎远程连接。
      

  3.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    只能通过MySQL 一种特殊的存储引擎Federated 来解决了。Federated 存储引擎是
    MySQL 解决类似于Oracle 的DB Link 之类问题的解决方案。和Oracle DB Link 的主要
    区别在于Federated 会保存一份远端表结构的定义信息在本地.注意:
    如果远端的表结构发生了变更,本地的表定义信息是不会跟着发生相应变化的。如果在更新远端表结构的
    时候并没有更新本地的Federated 表定义信息,就很可能造成Query 运行出错,无法得到
    正确的结果。
      

  5.   

    不能。
    并且在本地创建的FEDERATED表结构也必须与远端数据库的表B相同。
      

  6.   

    真是不幸,那我只有定期更新远端数据库的表的数据了?因为需要调用的表并不存在,是一个组合查询,这样必须创建临时表,并且定时更新。
    mysql这点还需改进。
      

  7.   

    也可以用应用程序来处理,先在驱动表所在的MySQL中取出相应的驱动结果集,然后根据驱动结果集再到被驱动表所在的MySQL中取出相应的数据.
      

  8.   

    这个明白,只是不打算走这个思路。还是研究FEDERATED表,Ok后,再结贴。
      

  9.   


    那就把这个VIEW相关的表都通过FEDERATED连过来,然后基于这个FEDERATED表创建VIEW。
      

  10.   

    FEDERATED引擎是mysql的,多少版本才支持?我的是5.0.22,show engines时,显示不支持:
    Engine Support Comment
    MyISAM YES Default engine as of MySQL 3.23 with great performance
    MEMORY YES Hash based, stored in memory, useful for temporary tables
    InnoDB DEFAULT Supports transactions, row-level locking, and foreign keys
    BerkeleyDB NO Supports transactions and page-level locking
    BLACKHOLE NO /dev/null storage engine (anything you write to it disappears)
    EXAMPLE NO Example storage engine
    ARCHIVE YES Archive storage engine
    CSV NO CSV storage engine
    ndbcluster NO Clustered, fault-tolerant, memory-based tables
    FEDERATED NO Federated MySQL storage engine
    MRG_MYISAM YES Collection of identical MyISAM tables
    ISAM NO Obsolete storage engine怎么处理?
      

  11.   

    参考http://tianhewulei.javaeye.com/blog/642833,重启mysql服务,结果启动服务失败,无任何提示。
    注明:Windows server2003+mysql5.0.22高人何在?
      

  12.   

    我表达有误。
    具体情况是修改my.ini后,重启服务,提示启动成功,但是无法登陆数据库。
      

  13.   

    按http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html所说,FEDERATED引擎,竟然是从5.0.3才有效的。
      

  14.   

    基于性能考虑,还是通过txt文件在不同服务器导出导入文件,不过学习了不少mysql知识,结贴散分。