zoukankan      html  css  js  c++  java
  • 2.3.6 Federate 远程访问数据库

     

    1)允许本地访问远程mysql数据库中表的数据
    2)本地只存結构,不存数据
    3)类似于 oracle dblink
    4)Federate存储引擎默认不开启,如果需要开启需要在my.cnf加入:
    [mysqld]
    federated
     
    show engines
     
    5)mysql 中的 Federate目前不支持异构数据库,但 mariadb 中的 FederateX 支持
    注意事项:
    1)本地表的结构必须与远程的完全一样。
    2)远程数据目前只能是 mysql
    3)不支持事务
    4)不支持表结构的修改
     
     
    语法:
    在建表语句尾部加入:
    engine=federated connection= 'MYSQL://用户名:密码@IP:端口/数据库名/表名"
     

    案例学习如何使用 Federate

     
    1.查看存储引擎
    show engines
     
    2.配置启动 federated
    my.cnf 加入以下参数后重启:
    [mysqld]
    federated
     
    mysql root@localhost:(none)> show engines
    +--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
    | Engine             | Support | Comment                                                        | Transactions | XA  | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
    | FEDERATED          | YES     | Federated MySQL storage engine                                 | NO           | NO  | NO         |
     
     
    create database itpuxdb1
    create database itpuxdb2
    create database itpuxdb3
    
    
    grant all privileges on itpuxdb2.* to lewen@'%' identified by 'lewen'
    grant all privileges on itpuxdb3.* to lewen@'%' identified by 'lewen'
    flush privileges
     在 itpuxdb2 上面
    use itpuxdb2;
    create table itpuxt2(id int not null auto_increment primary key,name char(20) not null) engine myisam;
     
    在 itpuxdb3 上面
    use itpuxdb3
    
    create table itpuxt3(id int not null auto_increment primary key,name char(20) not null) engine myisam;
    在 itpuxdb1 上面
    use itpuxdb1
    
    CREATE TABLE itpuxt12 ( id INT NOT NULL auto_increment PRIMARY KEY, NAME CHAR ( 20 ) NOT NULL ) ENGINE federated CONNECTION = 'mysql://root:root@10.0.0.33:33057/itpuxdb2/itpuxt2';
    CREATE TABLE itpuxt13 ( id INT NOT NULL auto_increment PRIMARY KEY, NAME CHAR ( 20 ) NOT NULL ) ENGINE federated CONNECTION = 'mysql://root:root@10.0.0.33:33057/itpuxdb3/itpuxt3';
                                           
    软连接
     
    insert into itpuxt12(name) values('乐乐2')
    insert into itpuxt13(name) values('乐乐3')
    
    mysql root@localhost:itpuxdb1> select itpuxt12.*,itpuxt13.* from itpuxt12,itpuxt13 where itpuxt12.id=itpuxt13.id
    +----+-------+----+-------+
    | id | NAME  | id | NAME  |
    +----+-------+----+-------+
    | 1  | 乐乐2 | 1  | 乐乐3 |
    +----+-------+----+-------+
    
    
    insert into itpuxt12(name) values('乐乐22')
    insert into itpuxt13(name) values('乐乐33')
    insert into itpuxt12(name) values('乐乐222')
    insert into itpuxt13(name) values('乐乐333')
    
    
    mysql root@localhost:itpuxdb1> select itpuxt12.*,itpuxt13.* from itpuxt12,itpuxt13 where itpuxt12.id=itpuxt13.id
    +----+---------+----+---------+
    | id | NAME    | id | NAME    |
    +----+---------+----+---------+
    | 1  | 乐乐2   | 1  | 乐乐3   |
    | 2  | 乐乐22  | 2  | 乐乐33  |
    | 3  | 乐乐222 | 3  | 乐乐333 |
    +----+---------+----+---------+
    
    
    mysql root@localhost:(none)> SELECT * FROM itpuxdb2.itpuxt2 a,itpuxdb3.itpuxt3 b where a.id=b.id
    +----+---------+----+---------+
    | id | name    | id | name    |
    +----+---------+----+---------+
    | 1  | 乐乐2   | 1  | 乐乐3   |
    | 2  | 乐乐22  | 2  | 乐乐33  |
    | 3  | 乐乐222 | 3  | 乐乐333 |
    +----+---------+----+---------+
     
  • 相关阅读:
    Openfire 集群部署和负载均衡方案
    python读取excel一例-------从工资表逐行提取信息
    基本运算
    c语言知识点2
    c语言知识点1
    .NET核心代码保护策略-隐藏核心程序集
    写给那些对破解有偏执的人
    .NET P****** CMS 逆向工程
    WPF多语言化的实现
    AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(菜单篇)
  • 原文地址:https://www.cnblogs.com/wenyule/p/13636540.html
Copyright © 2011-2022 走看看