重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1072|回复: 0

[参数配置] mysql基于federated存储引擎访问远程数据库表

[复制链接]
发表于 2020-10-18 14:32:49 | 显示全部楼层 |阅读模式
本帖最后由 jiawang 于 2020-10-18 14:32 编辑

但是这个是有一个前置条件:两个数据库都必须是mysql数据库,且被访问的表必须是可以通过网络访问到的

(同一台机器也好,同一个局域网也好,走外网映射也好,总之要能被访问就是了)


假设有test和test1两个数据库。
test1库想访问test库的表student


1、先开启test1库的federated存储引擎查看数据库的federated存储引擎是否开启;
打开mysql的命令行客户端,输入show engines;
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
| Engine             | Support | Comment                                                        | Transactions | XA  | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
| FEDERATED          | YES     | Federated MySQL storage engine                                 | NO           | NO  | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO  | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO  | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO  | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO  | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO  | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO  | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO  | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
9 rows in set (0.05 sec)

FEDERATED官方简介:

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


测试步骤和环境说明
验证test库下student表
mysql>use test;
mysql> select * from student;
+----+------+-----+
| id | name | age |
+----+------+-----+
|  1| wang |  18 |
|  2| li   | 19 |
|  3| wu   | 19 |
|  4| xie  | 20 |
+----+------+-----+
4 rows in set (0.09 sec)


创建远程存储引擎表student1
mysql> CREATE TABLE `student1` (
`id` int(11) NOT NULL,
`name` varchar(25) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`))
   -> ENGINE=FEDERATED DEFAULT CHARSET=utf8 connection='mysql://root:mysql@192.168.0.145/test/student';
Query OK, 0 rows affected (0.09 sec)


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

CONNECTION选项中的连接字符串的一般形式如下:scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2022-5-29 03:22 , Processed in 0.088944 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表