mysql跨服务器访问另一个mysql服务器得访问数据(Windows版)

MySQL的FEDERATED存储引擎允许用户远程访问另一个数据库的表,仿佛它是本地表一样。通过编辑my.ini配置文件启用该引擎,然后创建FEDERATED表来映射远程数据。虽然能实现数据的实时查看,但不支持删除或修改操作,且大量关联查询可能影响性能。
摘要由CSDN通过智能技术生成

1. 简介

mysql 提供了一个类似Oracle中的数据库链接(DBLINK)功能的存储引擎–FEDERATED。当我们创建一个以FEDERATED为存储引擎的表时,服务器在数据库目录只创建一个表定义文件。文件由表的名字开始,并有一个frm扩展名。无其它文件被创建,因为实际的数据在一个远程数据库上。这不同于为本地表工作的存储引擎的方式。

对本地的Federated存储表操作增删改,实际上这些命令都被发到主服务器上的数据库执行,本地的Federated存储表会映射最新的远程数据;

2. 查询Federated引擎是否启动支持

show engines;

在这里插入图片描述r

3.如果没有启动支持则按照下面的方法进行启动

a)找到my.ini文件,一般mysqlmy.ini 位置在 C:\Program Files\MySQL\MySQL Server 的安装目录下,但是mysql5.7的安装目录在C:\ProgramData\MySQL\MySQL Server 5.7的目录下,mysql5.7以上的版本可能同5.7
b)将federated添加到mysqld后面。然后重启MySQL服务
c)执行show engines 命令,如果FEDERATED对应的Support值变为YES,则表示成功
在这里插入图片描述

4.执行建表语句,然后就可以通过此表远程访问另一台主机上的表了

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`u_id` int(8) NOT NULL AUTO_INCREMENT,
`u_user_name` varchar(128) NOT NULL,
`u_password` varchar(128) NOT NULL,
`u_mobile` varchar(128) NOT NULL,
`u_email` varchar(128) DEFAULT NULL,
`u_create_time` datetime NOT NULL,
`u_update_time` datetime NOT NULL,
`u_delete_flag` tinyint(1) NOT NULL,
PRIMARY KEY (`u_id`)
) 
ENGINE=FEDERATED 
AUTO_INCREMENT=3 
DEFAULT CHARSET=utf8
CONNECTION='mysql://root:admin@192.168.1.106:3306/user/user';

(mysql://用户名:密码@IP:port/dbName/tableName)

创建的表只能进行查询,不能删除或修改。如果远程表修改或新增,数据可以实时查看。但是大数据量关联查询广播表时,会存在性能问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值