mysql远程跨库联合查询的示例
作者:程宇寒 发布时间:2024-01-13 23:09:10
注意:myemployees库和shoppingCart库在同一台物理主机,如果不在同一台物理主机该怎么办呢?下面我会介绍到。
情况一2个库在同一台物理主机
联合查询(不同的2个库,myemployees库和shoppingCart库),这2个库在同一台物理主机上,都在我本机。
#联合查询(不同的2个库,myemployees库和shoppingCart库)
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
#
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION ALL
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
情况二2个库不在同一台物理主机(即2个库分别在不同的物理主机)
为了演示效果,我这里使用我的虚拟机,我虚拟机里安装了Linux系统(centos),Linux系统中已经安装了MySql数据库,MySql数据库服务已经启动了,所有的环境已经全部弄好了。
我的Linux系统(centos)的ip是192.168.117.66。
我打算我本地的author表和远程的user表进行联合查询。
在linux中输入SHOW CREATE TABLE `user`;这句话得到的结果后,我们把
CREATE TABLE IF NOT EXISTS `user` (
`id` INT(11) DEFAULT NULL,
`name` VARCHAR(20) DEFAULT NULL
)
这段代码拷贝到我本地的数据库中,并且在末尾加上
ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。
CREATE TABLE IF NOT EXISTS `user` (
`id` INT(11) DEFAULT NULL,
`name` VARCHAR(20) DEFAULT NULL
)ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';
其实上面的那段语句,说白了,就是在我本地的数据库中建了一个远程数据库的连接的快捷方式(远程数据库的连接快捷方式),类似于什么呢?就类似于我们window操作系统中的桌面上的桌面快捷方式,我们双击一下桌面上的某个软件图标就能打开该软件,一样的道理嘛。
执行上面的语句即可。
对了,还有一点要注意:
你要查一下,你本地的mysql数据库的FEDERATED引擎有没有开启。
SHOW ENGINES;
如果FEDERATED是NO的话,说明没有开启,需要你去修改一下mysql数据库的配置文件。
修改本地mysql数据库的配置文件,在配置文件末尾加上federated,如下图:
如果你是windows系统的话,就修改my.ini文件,如果你用的是Linux系统的话,就修改my.cnf文件。
修改完配置文件后记得重启一下mysql的服务。
linux重启mysql服务,service mysqld restart。
windows重启mysql服务,在dos窗口中,输入net stop mysql服务名,然后再输入net start mysql服务名。
OK,全部搞定后,执行如下sql语句,即可看到跨库查询的查询结果。
#
SELECT id, aname FROM author
UNION
SELECT id, `name` FROM `user`;
SELECT * FROM author INNER JOIN `user`;
以上这种跨服务器跨库的查询,需要注意如下几点:
1.该跨库查询方式不支持事务,最好别使用事务。
2.不能修改表结构。
3.MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。
4.表结构必须和目标数据库表完全一致。
来源:https://blog.csdn.net/czh500/article/details/85345825


猜你喜欢
- 1. xlsx to csv:import pandas as pddef xlsx_to_csv_pd(): data_xls = pd.
- MySQL添加新用户,见文章底部。按照正常思维,创建用户和设置密码什么的,应该是一个动作完成的。然而事实并非如此。我每次都是通过在网上找代码
- 简介简介:零代码的22个小游戏集合 作者:Grant Jenks版本:2.4.0安装:D:\>pip install fre
- 最近项目中需要与管易云erp做对接,看了他的接口文档,php的示例代码,于是用python仿写。其中传的参数data中前面几个json数据是
- 很佩服国外一些前端开发人员对待学问的研究精神,他们很善于总结发现。看到一篇关于安全字体List of Web Safe Fonts的文章,里
- 本文实例讲述了Python实现求解括号匹配问题的方法。分享给大家供大家参考,具体如下:这个在本科学习数据结构的时候已经接触很多了,主流的思想
- python和PHP相比较,python适合做爬虫。原因如下抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python
- 本文实例讲述了Python聚类算法之凝聚层次聚类。分享给大家供大家参考,具体如下:凝聚层次聚类:所谓凝聚的,指的是该算法初始时,将每个点作为
- 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:示例 1:输入: “abcabcbb”输出: 3解释: 因为无重
- 1.将下面一段代码插入<head>与</head>之间:<script> function&
- 手风琴(Collapse)效果展示Bootstrap 框架中 Collapse插件(折叠)其实就是我们常见的手风琴效果。点击标题,可以让其对
- 一条语句搞定数据库分页select top 10 b.* from (select&nbs
- 什么是事务?事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。数据库事务通常包含了一个序列的对数据库的读/写操作
- 1. 卡住是怎么办按照以下步骤, 前提是你需要懂点英文:尽可能自己想办法解决仔细阅读相关文档, 确保不错过任何相关内容在Google, 百度
- Python的运算符和其他语言类似(我们暂时只了解这些运算符的基本用法,方便我们展开后面的内容,高级应用暂时不介绍)数学运算>>
- 业务场景:需要记入访客的访问情况,但不能重复记入可以插入前进行判断要插入的数据是否存在业务代码如下 :INSERT INTO t_topic
- 链表由一系列不必在内存中相连的结构构成,这些对象按线性顺序排序。每个结构含有表元素和指向后继元素的指针。最后一个单元的指针指向NULL。为了
- python烟花代码如下# -*- coding: utf-8 -*-import math, random,timeimport thre
- PHP如何获取当前页完整URL及其参数 <? echo 'http://'.$_SERVER[&
- 在Python 3.5(含)以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插入字典,但是当你打印字典的Keys列表时,你会发现B