mysql远程跨库联合查询的示例

作者:程宇寒 时间:2024-01-13 23:09:10 

注意:myemployees库和shoppingCart库在同一台物理主机,如果不在同一台物理主机该怎么办呢?下面我会介绍到。

情况一2个库在同一台物理主机

mysql远程跨库联合查询的示例

联合查询(不同的2个库,myemployees库和shoppingCart库),这2个库在同一台物理主机上,都在我本机。

mysql远程跨库联合查询的示例

#联合查询(不同的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。

mysql远程跨库联合查询的示例

mysql远程跨库联合查询的示例

mysql远程跨库联合查询的示例

mysql远程跨库联合查询的示例

mysql远程跨库联合查询的示例

我打算我本地的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';这句话。

mysql远程跨库联合查询的示例

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远程跨库联合查询的示例

修改本地mysql数据库的配置文件,在配置文件末尾加上federated,如下图:

如果你是windows系统的话,就修改my.ini文件,如果你用的是Linux系统的话,就修改my.cnf文件。

mysql远程跨库联合查询的示例

修改完配置文件后记得重启一下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`;

mysql远程跨库联合查询的示例

SELECT * FROM author INNER JOIN  `user`;

mysql远程跨库联合查询的示例

以上这种跨服务器跨库的查询,需要注意如下几点: 

1.该跨库查询方式不支持事务,最好别使用事务。

2.不能修改表结构。

3.MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。

4.表结构必须和目标数据库表完全一致。

来源:https://blog.csdn.net/czh500/article/details/85345825

标签:mysql,远程,跨库查询
0
投稿

猜你喜欢

  • 一篇文章带你学习Python3的高级特性(1)

    2021-09-24 04:39:01
  • 中国移动G3笔记本全Flash 网站

    2009-04-27 12:51:00
  • python监控进程状态,记录重启时间及进程号的实例

    2022-04-22 07:47:20
  • Django 实现Admin自动填充当前用户的示例代码

    2021-12-23 17:37:26
  • python切割图片的实现示例

    2023-05-14 12:42:19
  • 动态刷新 dorado树的js代码

    2024-04-18 09:34:21
  • Vue.2.0.5过渡效果使用技巧

    2024-04-10 10:33:12
  • vue循环中点击选中再点击取消(单选)的实现

    2024-05-13 09:43:50
  • python项目报错:bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requests

    2022-07-17 05:39:02
  • Python实现最大子序和的方法示例

    2023-04-08 03:30:38
  • perl大文件读取处理的模块介绍

    2023-12-27 20:10:27
  • Python实战项目刮刮乐的实现详解流程

    2021-12-01 23:19:40
  • Pycharm开发Django项目创建ORM模型的问题

    2022-11-09 06:00:48
  • pycharm导入第三方库的两种方法(永不报错)

    2022-08-28 14:21:57
  • python中的线程threading.Thread()使用详解

    2021-02-25 21:38:38
  • 深入分析MySQL数据类型 DECIMAL

    2024-01-26 04:07:59
  • MySQL服务器 IO 100%的分析与优化方案

    2024-01-24 08:34:10
  • golang 如何通过反射创建新对象

    2024-04-27 15:24:38
  • Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的

    2023-03-29 11:05:43
  • Mysql中Insert into xxx on duplicate key update问题

    2024-01-23 22:32:36
  • asp之家 网络编程 m.aspxhome.com