文档详情

mysql中使用fredated引擎实现跨数据库服务器、跨实例访问_0.doc

发布:2018-06-20约5.07千字共4页下载文档
文本预览下载声明
MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问 跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现。对于MySQL而言,有一个FEDERATED存储引擎与之相对应。同样也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了FEDERATED存储引擎,以及演示了基于FEDERATED存储引擎跨实例访问的示例。 1、FEDERATED存储引擎的描述 FEDERATED存储引擎允许在不使用复制或集群技术的情况下实现远程访问数据库 创建基于FEDERATED存储引擎表的时候,服务器在数据库目录仅创建一个表定义文件,即以表名开头的.frm文件。 FEDERATED存储引擎表无任何数据存储到本地,即没有.myd文件 对于远程服务器上表的操作与本地表操作一样,仅仅是数据位于远程服务器 基本流程如下: 2、安装与启用FEDERATED存储引擎 源码安装MySQL时使用DWITH_FEDERATED_STORAGE_ENGINE来配置 rpm安装方式缺省情况下已安装,只需要启用该功能即可 3、准备远程服务器环境 代码如下: -- 此演示中远程服务器与本地服务器为同一服务器上的多版本多实例 -- 假定远程服务为:5.6.12(实例3406) -- 假定本地服务器:5.6.21(实例3306) -- 基于实例3306创建FEDERATED存储引擎表test.federated_engine以到达访问实例3406数据库tempdb.tb_engine的目的 [root@rhel64a ~]# cat /etc/issue Red Hat Enterprise Linux Server release 6.4 (Santiago) --启动3406的实例 [root@rhel64a ~]# /u01/app/mysql/bin/mysqld_multi start 3406 [root@rhel64a ~]# mysql -uroot -pxxx -P3406 --protocol=tcp )] show variables like server_id; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 3406 | +---------------+-------+ --实例3406的版本号 ] show variables like version; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.6.12-log | +---------------+------------+ --创建数据库 )] create database tempdb; Query OK, 1 row affected (0.00 sec) -- Author : Leshami -- Blog : )] use tempdb Database changed --创建用于访问的表 ] create table tb_engine as - select engine,support,comment from information_schema.engines; Query OK, 9 rows affected (0.10 sec) Records: 9 Duplicates: 0 Warnings: 0 --提取表的SQL语句用于创建为FEDERATED存储引擎表 ] show create table tb_engine \G *************************** 1. row *************************** Table: tb_engine Create Table: CREATE TABLE `tb_engine` ( `engine` varchar(64) NOT NULL DEFAULT , `support` varchar(8) NOT NULL DEFAULT , `comment` varchar(80) NOT NULL DEFAULT ) ENGINE=InnoDB DEFAULT CHARSET=utf8 --创建用于远程访问的账户 ] grant all privilege
显示全部
相似文档