• 【MySQL】DBLink 跨库访问


    相关说明:

    https://blog.csdn.net/qq_48721706/article/details/124088963
    

      

    DB-LINK以一个远程访问方式访问其他MYSQL实例

    连接实例和被连接实例都需要开启FEDERATED引擎

    Federated引擎配置

    检查库是否支持FEDERATED

    SHOW ENGINES;
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
    | CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
    | FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
    | MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
    | InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
    | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
    | ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    

      

    检查是否安装了FEDERATED插件

    INSTALL PLUGIN federated SONAME 'ha_federated.so';
    1125 - Function 'federated' already exists
    

     

    如果没有,打开MYSQL配置文件【my.ini】或者【my.cnf】配置FEDERATED参数

    然后重启MYSQL服务

    [mysqld]
    # mysql所在的目录
    basedir=D:\mysql-8.0.28-winx64\
    
    # mysql 数据库存储的目录
    datadir=D:\mysql-8.0.28-winx64\data\
    
    # mysql服务端默认使用的字符集
    character-set-server=utf8
    
    # 默认使用的存储引擎
    default-storage-engine=INNODB
    
    # mysql服务端的端口号
    port=3308
    
    # 支持其它MYSQL以DBLINK方式访问本实例
    federated
    
    # 关闭SSL认证
    skip_ssl
    
    [mysql]
    # mysql客户端默认使用的字符集
    default-character-set=utf8

    再次检查是否开启

    SHOW ENGINES;
    +--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
    | Engine             | Support | Comment                                                        | Transactions | XA  | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO  | NO         |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO  | NO         |
    | CSV                | YES     | CSV storage engine                                             | NO           | NO  | NO         |
    | FEDERATED          | YES     | Federated MySQL storage engine                                 | NO           | NO  | NO         |
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO  | NO         |
    | MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO  | NO         |
    | InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES | YES        |
    | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO  | NO         |
    | ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO  | NO         |
    +--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
    

      

    DBLINK访问测试:

    在A库创建一张测试表以及数据:

    CREATE TABLE `grade` (
      `id` int NOT NULL,
      `job` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,
      `score` int NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (1, 'C++', 11001);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (2, 'C++', 10000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (3, 'C++', 9000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (4, 'Java', 12000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (5, 'Java', 13000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (6, 'B', 12000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (7, 'B', 11000);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (8, 'B', 9999);
    INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (9, 'C', 22344);
    

      

    创建完成之后,在B库创建LINK表:

    CREATE TABLE `db-link-grade` (
      `id` int(11) NOT NULL,
      `job` varchar(32) NOT NULL,
      `score` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 CONNECTION='mysql://root:123456@localhost:3308/nowcoder-sql/grade';
    
    -- 指定表引擎为Federated
    ENGINE=FEDERATED
    
    -- 连接的目标表
    CONNECTION='mysql://用户名:密码@目标Host:端口/库名/表名';
    

      

    查询LINK表检查是否能成功访问:

    SELECT * FROM `db-link-grade`;
    +----+------+-------+
    | id | job  | score |
    +----+------+-------+
    |  1 | C++  | 11001 |
    |  2 | C++  | 10000 |
    |  3 | C++  |  9000 |
    |  4 | Java | 12000 |
    |  5 | Java | 13000 |
    |  6 | B    | 12000 |
    |  7 | B    | 11000 |
    |  8 | B    |  9999 |
    |  9 | C    | 22344 |
    +----+------+-------+
    

      

  • 相关阅读:
    [ USACO 2007 FEB ] Lilypad Pond (Silver)
    [ USACO 2007 FEB ] Lilypad Pond (Gold)
    [ USACO 2007 OPEN ] Dining
    [ BZOJ 2134 ] 单选错位
    「APIO2018新家」
    「WC2018即时战略」
    「学习笔记」杜教筛
    「APIO2018选圆圈」
    「学习笔记」集合幂级数
    「NOIP2018」保卫王国
  • 原文地址:https://www.cnblogs.com/mindzone/p/16377308.html
Copyright © 2020-2023  润新知