如何实现mysql远程跨库联合查询(mysql,开发技术)

时间:2024-05-03 18:58:07 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

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

如何实现mysql远程跨库联合查询

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

如何实现mysql远程跨库联合查询

#联合查询(不同的2个库,myemployees库和shoppingCart库)SELECTemp01.`employee_id`,emp01.`first_name`FROMmyemployees.employeesASemp01LIMIT0,5UNIONSELECTemp02.`employee_id`,emp02.`first_name`FROMshoppingCart.`employees2`ASemp02;#SELECTemp01.`employee_id`,emp01.`first_name`FROMmyemployees.employeesASemp01LIMIT0,5UNIONALLSELECTemp02.`employee_id`,emp02.`first_name`FROMshoppingCart.`employees2`ASemp02;

情况二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`;这句话得到的结果后,我们把

CREATETABLEIFNOTEXISTS`user`(`id`INT(11)DEFAULTNULL,`name`VARCHAR(20)DEFAULTNULL)

这段代码拷贝到我本地的数据库中,并且在末尾加上

ENGINE=FEDERATEDCONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。

如何实现mysql远程跨库联合查询

CREATETABLEIFNOTEXISTS`user`(`id`INT(11)DEFAULTNULL,`name`VARCHAR(20)DEFAULTNULL)ENGINE=FEDERATEDCONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';

其实上面的那段语句,说白了,就是在我本地的数据库中建了一个远程数据库的连接的快捷方式(远程数据库的连接快捷方式),类似于什么呢?就类似于我们window操作系统中的桌面上的桌面快捷方式,我们双击一下桌面上的某个软件图标就能打开该软件,一样的道理嘛。

执行上面的语句即可。

对了,还有一点要注意:

你要查一下,你本地的mysql数据库的FEDERATED引擎有没有开启。

SHOWENGINES;

如果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语句,即可看到跨库查询的查询结果。

#SELECTid,anameFROMauthorUNIONSELECTid,`name`FROM`user`;

如何实现mysql远程跨库联合查询

SELECT*FROMauthorINNERJOIN`user`;

如何实现mysql远程跨库联合查询

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

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

2.不能修改表结构。

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

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

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何实现mysql远程跨库联合查询的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:VueRouter4.x怎么安装使用下一篇:

20 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18