广告
返回顶部
首页 > 资讯 > 数据库 >怎么通过mysql的federated插件实现dblink功能
  • 901
分享到

怎么通过mysql的federated插件实现dblink功能

2024-04-02 19:04:59 901人浏览 安东尼
摘要

这篇文章主要讲解了“怎么通过Mysql的federated插件实现dblink功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过mysql的fede

这篇文章主要讲解了“怎么通过Mysql的federated插件实现dblink功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过mysql的federated插件实现dblink功能”吧!

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 -h227.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插件实现dblink功能”的内容了,经过本文的学习后,相信大家对怎么通过mysql的federated插件实现dblink功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么通过mysql的federated插件实现dblink功能

本文链接: https://www.lsjlt.com/news/59921.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么通过mysql的federated插件实现dblink功能
    这篇文章主要讲解了“怎么通过mysql的federated插件实现dblink功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过mysql的fede...
    99+
    2022-10-18
  • php怎么实现插件功能
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。php怎么实现插件功能?php实现插件插件很多从事互联网行业或者开发的人员来不是很陌生,wordpress之所以为什么那么受欢迎,很大部分是因为他的强大的插件库,还要...
    99+
    2022-11-25
    插件 php
  • 怎么通过Java实现文件断点续传功能
    这篇文章主要介绍“怎么通过Java实现文件断点续传功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过Java实现文件断点续传功能”文章能帮助大家解决问题。什么是断点续传用户上传大文件,网络差...
    99+
    2023-06-30
  • 怎样通过Vue实现@人的功能
    本篇文章为大家展示了怎样通过Vue实现@人的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面采用vue,同时增加鼠标点击事件和一些页面小优化基本结构新建一个sandBox.vue文件编写功能的...
    99+
    2023-06-22
  • 怎么用jQuery.cookie.js插件实现换肤功能
    本篇内容主要讲解“怎么用jQuery.cookie.js插件实现换肤功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用jQuery.cookie.js插件...
    99+
    2022-10-19
  • Vue怎么用插件实现打印功能
    这篇文章主要介绍“Vue怎么用插件实现打印功能”,在日常操作中,相信很多人在Vue怎么用插件实现打印功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么用插件实现打印功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • 通过变换矩阵怎么实现canvas的缩放功能
    本篇文章为大家展示了通过变换矩阵怎么实现canvas的缩放功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步就是监听鼠标的滚轮事件,在滚轮事件中根据鼠标的滚动以及基于前一次的变换,重新设置co...
    99+
    2023-06-09
  • Java中怎么通过调用jna实现语音识别功能
    Java中怎么通过调用jna实现语音识别功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JNAjava调用.dll获取.so一般通过JNI,但是JNI的使用比较复杂,需要用C...
    99+
    2023-06-17
  • ubuntu中怎么通过配置Pureftpd实现匿名登录功能
    ubuntu中怎么通过配置Pureftpd实现匿名登录功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Pureftpd是一款快速,高质量,功能齐全的ftp服务器,最重要的...
    99+
    2023-06-16
  • 怎么使用Jquery插件实现跨域异步上传文件功能
    这篇文章主要介绍“怎么使用Jquery插件实现跨域异步上传文件功能”,在日常操作中,相信很多人在怎么使用Jquery插件实现跨域异步上传文件功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Jquer...
    99+
    2023-07-04
  • 怎么使用vue-pdf插件实现pdf文档预览功能
    这篇文章主要介绍了怎么使用vue-pdf插件实现pdf文档预览功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用vue-pdf插件实现pdf文档预览功能文章都会有所收获,下面我们一起来看看吧。vue-p...
    99+
    2023-07-05
  • 通过Python收集MySQL MHA 部署及运行状态信息的功能实现
    一. 背景介绍  当集团的MySQL数据库实例数达到2000+、MHA集群规模数百个时,对MHA的及时、高效管理是DBA必须面对的一个挑战。MHA 集群 节点信息 和 运行状态 是管理的基础。本篇幅主要介绍如何通过Python实现收集MH...
    99+
    2016-03-07
    通过Python收集MySQL MHA 部署及运行状态信息的功能实现
  • jQuery插件ImgAreaSelect怎么实现头像上传预览和裁剪功能
    本文小编为大家详细介绍“jQuery插件ImgAreaSelect怎么实现头像上传预览和裁剪功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“jQuery插件ImgAreaSelect怎么实现头像上传预览和裁剪功能”文章能帮助大家解决疑惑...
    99+
    2023-06-04
  • 通过Python实现对SQL Server 数据文件大小的监控告警功能
    1.需求背景 系统程序突然报错,报错信息如下: The transaction log for database '@dbname' is full. To find out wh...
    99+
    2022-11-12
  • 怎么在Mybatis中通过配置xml实现单表增删改查功能
    怎么在Mybatis中通过配置xml实现单表增删改查功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mybatis简介MyBatis 是一款优秀的持久层框架,...
    99+
    2023-06-14
  • SpringBoot实现文件在线预览功能的过程是怎样的
    SpringBoot实现文件在线预览功能的过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景最近公司内部oa系统升级,需要增加文件在线预览服务,最常见的文件就是of...
    99+
    2023-06-25
  • 通配符*匹配功能在MYSQL查询中的实现是怎样的
    通配符*匹配功能在MYSQL查询中的实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 今日在做站内短消息发送的时候,遇到一个功能,...
    99+
    2022-10-19
  • java怎么实现文件的上传功能
    今天小编给大家分享一下java怎么实现文件的上传功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、上传界面<%@&...
    99+
    2023-06-29
  • mysql怎么实现的lead和lag函数功能
    本篇内容主要讲解“mysql怎么实现的lead和lag函数功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么实现的lead和lag函数功能”吧! ...
    99+
    2022-10-18
  • 怎么使用HTML5与CSS3实现无插件拖拽上传图片功能
    这篇文章主要介绍“怎么使用HTML5与CSS3实现无插件拖拽上传图片功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用HTML5与CSS3实现无插件拖拽上传图片功能”文章能帮助大家解决问题。...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作