db1:172.26.99.157 3306(源库)

db2:172.26.99.157 3310(通过dblink调用源库)

[root@node7 lepus]# mm

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 357

Server version: 5.7.29-log MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show engines;

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |

| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |

| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |

| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |

| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |

| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |

| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

9 rows in set (0.00 sec)

mysql> install plugin federated soname 'ha_federated.so';

ERROR 1125 (HY000): Function 'federated' already exists

mysql> exit

Bye

重启数据库,

# mysqladmin -uroot -P3310 -p -h 127.0.0.1 shutdown

# mysqld --defaults-file=/mysql/data/my.cnf --user=mysql --datadir=/mysql/data/3310  --basedir=/mysql/app/mysql --pid-file=/mysql/data/mysql3310.pid --socket=/mysql/data/mysql3310.sock --port=3310 &

在my.cnf中添加参数:

federated

mysql> show engines;

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |

| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |

| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |

| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |

| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |

| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |

| FEDERATED          | YES     | Federated MySQL storage engine                                 | NO           | NO   | NO         |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

9 rows in set (0.00 sec)

@3306:

# mysql -uroot -P3306 -h127.0.0.1 -p

mysql> create database testdb;

mysql> use testdb;

mysql> CREATE TABLE `options` (

->   `name` varchar(50) DEFAULT NULL,

->   `value` varchar(255) DEFAULT NULL,

->   `description` varchar(100) DEFAULT NULL,

->   KEY `idx_name` (`name`) USING BTREE

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

@33310:

mysql> use tianlei;

mysql> CREATE TABLE `options` (

->   `name` varchar(50) DEFAULT NULL,

->   `value` varchar(255) DEFAULT NULL,

->   `description` varchar(100) DEFAULT NULL,

->   KEY `idx_name` (`name`) USING BTREE

-> ) ENGINE=FEDERATED DEFAULT CHARSET=utf8

-> CONNECTION='mysql://root:root123@172.26.99.157:3306/testdb/options';

Query OK, 0 rows affected (0.01 sec)

mysql> select * from options;

Empty set (0.01 sec)

@3306:

mysql>

mysql> insert into options (name,value ) values ('log','Y');

Query OK, 1 row affected (0.00 sec)

mysql> select * from options;

+------+-------+-------------+

| name | value | description |

+------+-------+-------------+

| log  | Y     | NULL        |

+------+-------+-------------+

1 row in set (0.00 sec)

@3310:

mysql> select * from options;

+------+-------+-------------+

| name | value | description |

+------+-------+-------------+

| log  | Y     | NULL        |

+------+-------+-------------+

1 row in set (0.00 sec)

mysql> insert into options (name,value ) values ('sql_mode','N');

Query OK, 1 row affected (0.01 sec)

mysql> select * from options;

+----------+-------+-------------+

| name     | value | description |

+----------+-------+-------------+

| log      | Y     | NULL        |

| sql_mode | N     | NULL        |

+----------+-------+-------------+

2 rows in set (0.00 sec)

mysql> update options set description='abc' where name='log';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> delete from options where name ='sql_mode';

Query OK, 1 row affected (0.01 sec)

除了直接使用连接串的方法,还可以先创建server,然后建表时调用server:

还可以使用server的方式将连接串存储起来。

CREATE SERVER dblink

FOREIGN DATA WRAPPER mysql

OPTIONS (USER 'lepus', HOST '172.26.99.157', PORT 3306, DATABASE 'testdb');

CREATE TABLE `options2` (

`name` varchar(50) DEFAULT NULL,

`value` varchar(255) DEFAULT NULL,

`description` varchar(100) DEFAULT NULL,

KEY `idx_name` (`name`) USING BTREE

) ENGINE=FEDERATED

DEFAULT CHARSET=utf8

CONNECTION='dblink/options';

mysql> select * from options2;

ERROR 1429 (HY000): Unable to connect to foreign data source: Access denied for user 'lepus'@'172.26.99.157' (using password:

mysql> drop server dblink;

Query OK, 1 row affected (0.00 sec)

CREATE SERVER dblink

FOREIGN DATA WRAPPER mysql

OPTIONS (USER 'lepus', HOST '172.26.99.157', PORT 3306, DATABASE 'testdb',PASSWORD 'lepus');

mysql> CREATE SERVER dblink

-> FOREIGN DATA WRAPPER mysql

-> OPTIONS (USER 'lepus', HOST '172.26.99.157', PORT 3306, DATABASE 'testdb',PASSWORD 'lepus');

Query OK, 1 row affected (0.01 sec)

mysql> select * from options2;

+------+-------+-------------+

| name | value | description |

+------+-------+-------------+

| log  | Y     | abc         |

+------+-------+-------------+

1 row in set (0.01 sec)

mysql> show create table options2\G

*************************** 1. row ***************************

Table: options2

Create Table: CREATE TABLE `options2` (

`name` varchar(50) DEFAULT NULL,

`value` varchar(255) DEFAULT NULL,

`description` varchar(100) DEFAULT NULL,

KEY `idx_name` (`name`) USING BTREE

) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='dblink/options'

1 row in set (0.00 sec)

在mysql 5.7官方文档中有federated引擎的具体介绍,地址为:

https://dev.mysql.com/doc/refman/5.7/en/federated-storage-engine.html

远程服务器中包括表定义和数据,可以是myisam、innodb或其他引擎;

本地服务器中只包括相同表结构的federated引擎表和远程服务器的连接串信息。增删改查操作都需要发到远程服务器中。

数据交互如下:

1.存储引擎查看FEDERATED表拥有的每一列,并构造引用远程表的适当SQL语句

2.语句使用MySQL客户端API发送到远程服务器

3.远程服务器处理语句,本地服务器检索语句产生的所有结果(受影响的行数或结果集)

4.如果语句生成了结果集,则每一列都转换为FEDERATED引擎所期望的内部存储引擎格式,并可用于向发出原始语句的客户端显示结果。

限制:

远端服务器必须是mysql

在调用前,FEDERATED指向的远端表必须存在

可以指向FEDERATED引擎表,注意不要循环嵌套

FEDERATED引擎无法使用索引,如果结果集很大,数据存放在内存中,可能使用大量swap甚至hang住。

FEDERATED引擎表支持insert、update、delete、select、truncate table操作和索引操作,但不支持alter table操作

能接受insert …… on deplicate key update,但不生效,有重复值仍然会报错

不支持事务

可以进行批量插入操作,但注意大小不要超过服务器建能传输的最大包大小

FEDERATED引擎表无法获知远程服务器上表的变化

使用连接串时,密码不能包括@符号

INSERT_id和时间戳选项不会传播到data provider

针对FEDERATED表发出的任何DROP TABLE语句只删除本地表,而不删除远程表

不使用查询缓存

不支持用户定义的分区

mysql federated 插件,通过mysql的federated插件实现dblink功能相关推荐

  1. linux安装12c oem,OEM12C(12.1.0.5)安装插件监控mysql(linux)

    目录结构: 环境说明: oms:12.1.0.5  os:centos 6.X MYSQL: 5.7.21  OS:centos 7.X 一.安装插件mysql database 下载地址: http ...

  2. emq+mysql设置_EMQ--添加mysql认证及mysql插件访问控制

    EMQ-百万级分布式开源物联网MQTT消息服务器. MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿 ...

  3. 使用sublime的SQLTools插件访问MySQL的配置方法

    写在前面 最近抽时间学习一下数据库的查询语句, 首当其冲的当然就是开源的MySQL了, 不过这个软件命令行界面不太好用, 就算是使用了命令行增强工具mycli效果也不明显, 插入数据时候好几个回车就比 ...

  4. 【亲自验证】Navicat连接MySql提示无法加载身份验证插件“缓存_sha2_密码”?

    Navicat连接MySql提示无法加载身份验证插件"缓存_sha2_密码" [1]首先登录MySql(见下图) [2]管理员身份运行CMD(见下图) [3]如图所示 [4]Nav ...

  5. mysql密码认证插件_关于mysql:无法加载身份验证插件’caching_sha2_password’

    我正在将MySQL-8.0与MySQL Workbench连接起来并出现以下错误: Authentication plugin 'caching_sha2_password' cannot be lo ...

  6. emqtt mysql认证_Emqtt -- 05 -- Mysql插件认证及访问控制

    了解了 Clientid 认证后,现在我们再来了解下 Mysql 插件认证以及访问控制,默认关闭了匿名认证 一.创建用户表和控制表 根据官方文档,用户表的名称为:mqtt_user,访问控制表的名称为 ...

  7. mysql 1524_Debian/Ubuntu遇到MySQL错误ERROR 1524 (HY000):插件未加载的解决

    如果你在Debian/Ubuntu操作系统上遇到MySQL错误:ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded(插件'unix_socke ...

  8. mysql federated 缺点_MySQL存储引擎--------Federated最佳实战

    1. 背景 * 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. * 有点类似Oracle中的数据库链接(DBLINK). 要允许这个存储引擎, ...

  9. code-server、docker-compose安装wordpress+mysql、wordpress公式插件、markdown插件、目录插件、调序插件、统计插件、分享点赞打赏插件

    文章目录 缘起 一.code-server 1.1 code-server简介 1.2 code-server安装和启动 1.3 code-server安全配置 1.3.1 域名申请和备案 1.3.2 ...

最新文章

  1. 十二、springboot 详解RestControllerAdvice(ControllerAdvice)
  2. 关于嵌入式开发,到底需要会多少门语言,做好准备了吗
  3. java properties读取缓存_Java读取Properties文件
  4. 3月6日 输入与输出 数据类型 运算符
  5. CSS :before :after 伪类选择器
  6. YASnippet - emacs 的代码片段管理工具
  7. zend studio php 5.5,PHP - 下载 - Zend Studio 5.5
  8. C# 异步工具类 及一点小小的重构经验
  9. 20191116每日一句
  10. fgui快速接入到一个laya实例项目中
  11. phpstudy2020安装及简单使用教程
  12. (CVPR 2020) PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
  13. linux中gimp命令截图,Linux利用GIMP截图
  14. Comparator.comparing排序的坑
  15. Java Pair的使用
  16. Redis设计与实现——数据结构
  17. Java Socket 如何接收byte和String
  18. Python案例之QQ空间自动登录程序实现
  19. after all 用法, although but 用法
  20. 加盟代理的骗局[转载]

热门文章

  1. 高通 OpenXR SDK 使用指南(3)
  2. 【post请求下载文件流】如何使用post请求下载文件流 blob
  3. 华为eNSP vlan综合实验
  4. 基于javaweb+ssm的农资采购销售系统(java+SSM+Easyui+maven+Mysql)
  5. memcached 详聊
  6. MySQL--增删改查基本操作
  7. 在线音乐播放器 --- 分页功能和其他更新
  8. 考研党注意!这8种行为将会被取消复试成绩!
  9. 几个配置管理系统puppet、chef、saltstack、ansible的对比
  10. idea中tomcat配置详解