Mysql不同服务器跨库查询解决方案

article/2025/8/17 16:40:40

项目场景:

Mysql在不同服务器实现跨库查询,类似dblink


解决方案:

在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表。

这个特性给某些开发应用带来了便利,你可以直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步。实际上这个引擎里面是不真实存放数据的,所需要的数据都是连接到其他MySQL服务器上获取。

1、开启FEDERATED引擎

show engines;

 如果这里是NO,需要在配置文件[mysqld]中加入一行:federated

 改完重启服务,就变成yes了。

2、创建虚拟表

场景A库,想访问远程B库的test表

在A数据库上创建虚拟表test_copy,将B库上test表映射到A库上面

CREATE TABLE `test_copy` (`id` int NOT NULL,`name` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='远程测试表test' CONNECTION='mysql://root:123456@127.0.0.1:3306/B/test';/**
CONNECTION='mysql://root:123456$@127.0.0.1:3306/B/test'
root:代表远程数据库的用户
123456:代表远程数据的密码
127.0.0.1:代表远程数据库的ip地址,域名也可以
B:代表远程数据库的数据库名称
test:代表远程数据库中的哪一张表
**/

与普通建表语句不同的地方:

ENGINE=FEDERATED

CONNECTION='mysql://root:123456@127.0.0.1:3306/B/test'

这样就可以直接查询test_copy表了

注意事项:

1.本地创建的表名必须在远程服务器存在,创建的字段也必须是远程表中的字段,可以比远程表的字段少,但是不能多,本地存储引擎选择

2.对本地虚拟表的结构修改,并不会修改远程表的结构 

3.truncate 命令,会清除远程表数据 

4.drop命令只会删除虚拟表,并不会删除远程表

5.select count(*), select * from limit M, N 等语句执行效率非常低,数据量较大时存在很严重的问题,但是按主键或索引列查询,则很快,如以下查询就非常慢(假设 id   为主索引)

select id from db.tablea where id >100 limit 10 ;


http://chatgpt.dhexx.cn/article/TvIoU3Qp.shtml

相关文章

Mysql跨库跨表联表查询

Mysql跨库跨表联表查询 查询两个库中两个表中的关联数据,如下图中,查询数据库dept中表dept和数据库emp中的表emp中关联的数据 SQL语句格式 SELECT * FROM 数据库1.表1,数据库2.表2 where 条件; select * from emp.emp a,dept.dept b where a.…

两不同服务器上的mysql跨库查询

业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务需…

MySQL实现跨库join查询

MySQL实现跨库join查询 一.同服务器的不同库 只需要在表名前加上db_name select* fromuserdb.user u join orderdb.order o onu.id o.user_id;二.不同服务器的不同库 查看配置 FEDERATED SHOW engines;如果是NO,需要改为YES.默认是NO 在my.ini文件中增加一行,…

mysql怎么跨库查询_在MySQL中怎样进行跨库查询?

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这…

MySQL不同数据库不同表连表查询(跨库连表查询)

前提:文章为解决同一个连接不同数据库的表进行关联查询,本文以left join做示例其他的按照同样方法自己测试! 首先拿到这个表,简称表A吧, 表A在A数据库 然后这个是表B 表B在B数据库 红线框的看不懂的去重新学一下数…

navicat跨库查询

利用navicat进行跨库查询(2019 年 6 月 4 日,由 Robert Gravelle 撰写转载) 随着主从(Master-Slave)拓扑和数据库分片等现代实践变得越来越普遍,数据库管理员(DBA)和开发人员比以往更…

(Mysql)跨表查询和跨库查询

新建测试数据库:create database test_cour; 选择数据库:use 数据库名; 查看数据表:show tables; 创建数据表里面的字段(列)名: create table 表名( //列名 字符格式 约束 //注意末尾加逗号&…

在MySQL中怎样进行跨库查询?

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候带上数据名&…

mysql中的跨库关联查询

业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务…

mysql远程跨库联合查询

注意:myemployees库和shoppingCart库在同一台物理主机,如果不在同一台物理主机该怎么办呢?下面我会介绍到。 情况一2个库在同一台物理主机 联合查询(不同的2个库,myemployees库和shoppingCart库),这2个库在同一台物理主机上,都在…

mysql跨库关联查询(dblink)

dblink 1、解决方案2、操作3、缺点 1、解决方案 mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。 解释: dblink就是我们在创建表的时候连接到我们的远程库,然后我们本地新建的表数据就是映射远程的表的数据。当我们创建…

mysql跨库查询解决方案

1.第一种跨库查询,是在同一个mysql服务器下两个不同的数据库之间的联查,关系如下图 在同一个mysql服务器下,不同的两个数据直接加上库名就可以实现跨库查询了 select * from t_test1 t1, test2.t_test2 t2 where t1.id t2.id执行sql查询到…

MySQL跨库查询

一、跨库查询介绍 在MySQL中跨库查询主要分为两种情况,一种是同服务器的跨库查询;另一种是不同服务器的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 二、同服务器的跨库查询 同服务器的跨库查询只需要在关…

xampp v3.2.2 php版本,XAMPP(php集成环境包)

XAMPP(php集成环境包)是一款功能强大的PHP环境搭建工具,能够帮助用户在创建PHP环境的时候更加容易,简化了开发环境的配置流程,节约了PHP研发人员的时间。 【集成配置】 Apache 2.4.12 (VC11) (IPv6 Crypto apr-1.5.1 apr-util-1.5.4 apr-ico…

php一键安装包winnt,(推荐)Windows一键安装包安装

为了简化大家在windows下面的安装,我们在xampp基础上做了禅道企业版的windows一键安装包。 xampp是业内非常著名的AMP集成运行环境。禅道企业版的一键安装包主要在它基础上做了大量的精简,并集成了我们自主开发的控制面板,使用起来会更加方便…

windows下常见php集成环境安装包介绍

来源:http://aiyooyoo.com/index.php/archives/90 WAMP是指在Windows服务器上使用Apache、MySQL和PHP的集成安装环境,可以快速安装配置Web服务器,一 般说来,大家都习惯于将Apache、MySQL、PHP架设在Linux系统下,但是&a…

xammp php环境搭,XAMPP配置PHP环境搭建建站集成安装包7.2.4.4官方32位/64位版

XAMPP配置PHP环境搭建建站集成安装包官方最新版下载,XAMPP安装PHP环境搭建是小编为大家带来的一款功能强大的PHP建站集成软件包,Xampps工具能够让用户快速创建php环境,一键之下完成apache,php,mysql,phpmya…

php和nginx环境的配置,Nginx和PHP服务器环境的简单安装配置步骤

测试环境 Linux 2.6.18 nginx-1.0.4 http://www.nginx.org/ php-5.3.6 http://www.php.net/ 一,安装Nginx wget http://nginx.org/download/nginx-1.0.4.tar.gz tar -zxvf nginx-1.0.4.tar.gz cd nginx-1.0.4 ./configure --prefix/data/apps/nginx-1.0.4 make &…

安利phpEnv,用于本地开发测试的网站搭建环境集成神器

好在哪里? 不需要单独安装apache 不需要单独安装mysql 不需要php(也不需要配置) 不需要安装phpmyadmin 环境集成,小白利器,类似服务器面板(宝塔面板这种的集成环境) 安装主程序phpEnv&…

apache php集成环境搭建_Apache2.4+ PHP5.6 搭建PHP开发环境笔记

闲着无聊就把系统给换成了Win8.1,之前的一些各种开发环境就不得不重新安装了,以前开发PHP的时候用的是PHP5.3+Apache2.2.X的配置,今天就尝鲜一下换成Apache2.4+PHP5.6的环境玩玩,这里就简单的记录一下安装的配置过程吧. 安装前你需要准备下面的一些东西 ①下载Apache2.4的相…