《MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问》由会员分享,可在线阅读,更多相关《MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问(5页珍藏版)》请在人人文库网上搜索。
1、跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过 DBLINK的方式来实现。对于 MySQL而言,有一个 FEDERATED存储引擎与之相对应。同样 也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了 FEDERATED存储引擎,以及演示了基于FEDERATED存储引擎跨实例访问的示例。1、FEDERATED存储弓I擎的描述FEDERATED存储引擎允许在不使用复制或集群技术的情况下实现远程访问数据库创建基于FEDERATED存储引擎表的时候,服务器在数据库目录仅创建一个表定义文 件,即以表名开头的.frm文件。FEDERATED存储引擎表无任何。
2、数据存储到本地,即没有.myd文件对于远程服务器上表的操作与本地表操作一样,仅仅是数据位于远程服务器基本流程如下:2、安装与启用 FEDERATED存储引擎源码安装 MySQL 时使用 DWITH_FEDERA TED_STORAGE_ENGINE 来配置rpm安装方式缺省情况下已安装,只需要启用该功能即可3、准备远程服务器环境代码如下:-此演示中远程服务器与本地服务器为同一服务器上的多版本多实例-假定远程服务为:5612(实例3406)-假定本地服务器:5621(实例3306)-基于实例 3306创建FEDERATED 存储引擎表test.federated_engine以到达访问实例 34。
3、06 数据库 tempdb.tb_engine 的目的rootrhel64a # cat /etc/issueRed Hat En terprise Li nux Server release 6.4 (Sa ntiago)-启动3406的实例rootrhel64a # /u01/app/mysql/bi n/mysqld_multi start 3406rootrhel64a # mysql -uroot -pxxx -P3406 -protocol=tcp)& gt; show variables like server_id;+| Variable_ name | Value |+| s。
4、erver_id | 3406 |+-实例3406的版本号 show variables like vers ion:+| Variable_ name | Value |+| version | 5.6.12-log |+-创建数据库)& gt; create database tempdb;Query OK, 1 row affected (0.00 sec)-Author : Leshami-Blog :)& gt; use tempdbDatabase cha nged-创建用于访问的表 create table tb_e ngine as- select engin e,suppor。
5、t,comme nt from in formatio n_schema.e ngin es;Query OK, 9 rows affected (0.10 sec)Records: 9 Duplicates: 0 Warnin gs: 0-提取表的SQL语句用于创建为 FEDERATED存储引擎表 show create table tb_e ngine G*1. row*Table: tb_e ngineCreate Table: CREATE TABLE tb_e ngine ( en gi ne varchar(64) NOT NULL DEFAULT , support varcha。
6、r(8) NOT NULL DEFAULT , comme nt varchar(80) NOT NULL DEFAULT )ENGINES nn oDB DEFAULT CHARSET=utf8-创建用于远程访问的账户 grant all privileges on tempdb.* to ide ntified by xxx;Query OK, 0 rows affected (0.00 sec) flush privileges;Query OK, 0 rows affected (0.00 sec)4、演示FEDERATED存储引擎跨实例访问代码如下:rootrhel64a # mys。
7、ql -uroot -pxxx)& gt; show variables like version:+| Variable_ name | Value |+| version | 5.6.21 |+#查看是否支持 FEDERATED引擎)& gt; select * from in formatio n_ schema.e ngi nes where engin e=federated;+| ENGINE | SUPPORT | COMMENT | TRANSACTIONS | XA | SA VEPOINTS |+| FEDERATED | NO | Federated MySQL stor。
8、age en gi ne | NULL | NULL | NULL |+) exitrootrhel64a # service mysql stopShutt ing dow n MySQL. OK #配置启用FEDERATED弓|擎rootrhel64a # vi /etc/my.c nfrootrhel64a # tail -7 /etc/my.cnfmysqldsocket = /tmp/mysql3306.sockport = 3306pid-file = /var/lib/mysql/my3306.piduser = mysqlserver-id=3306/federated #添加。
9、该选项rootrhel64a # service mysql startStarti ng MySQL. OK rootrhel64a # mysql -uroot -pxxx)& gt; select * from in formatio n_ schema.e ngines where engin e=federated;+| ENGINE | SUPPORT | COMMENT | TRANSACTIONS | XA | SA VEPOINTS |+| FEDERATED | YES | Federated MySQL storage en gi ne | NO | NO | NO |+。
10、)& gt; use test-创建基于 FEDERATED 引擎的表 federated_engine CREATE TABLE federated_e ngi ne (- e ngi ne varchar(64) NOT NULL DEFAULT ,- support varchar(8) NOT NULL DEFAULT ,- comme nt varchar(80) NOT NULL DEFAULT - ) ENGINE=FEDERATED DEFAULT CHARSET=utf8- CONNECTION=mysql:/remote_user:xxx192.168.1.131:3406。
11、/tempdb/tb_e ngi ne:Query OK, 0 rows affected (0.00 sec)-下面是创建后表格式文件 system ls -hltr /var/lib/mysql/test total 12K-rw-rw- 1 mysql mysql 8.5K Oct 24 08:22 federated_e ngi ne.frm-查询表 federated_engine select * from federated_e nginelimit 2;+| engine | support | comme nt |+| MRG_MYISAM | YES | Collectio。
12、 n of ide ntical MylSAM tables | CSV | YES | CSV storage en gi ne |+-更新表 federated_engine update federated_e ngine set support=NO where engin e=CSV:Query OK, 1 row affected (0.03 sec)Rows matched: 1 Chan ged: 1 Warnin gs: 0-查看更新后的结果 select * from federated_e ngine where engin e=CSV;+| engine | suppo。
13、rt | comme nt |+| CSV | NO | CSV storage en gi ne |+5、创建FEDERATED引擎表的链接方式代码如下:scheme:/user_ name:passwordhost_ name:port_ nu m/db_ name/tbl_ namescheme: A recog ni zed connection protocol. Only mysql is supported as the scheme value at this point.user_name: The user name for the connection. This use。
14、r must have been created on the remote server, and must have suitable privileges to perform the required actions (SELECT, INSERT,UPDATE, and so forth) on the remote table.password: (Opti on al) The corresp onding password for user_ name.host_ name: The host n ame or IP address of the remote server.p。
15、ort_ num: (Opti on al) The port nu mber for the remote server. The default is 3306.db_n ame: The n ame of the database holdi ng the remote table.tbl_ name: The n ame of the remote table. The n ame of the local and the remote table do not have to match.链接示例样本:CONNECTION=mysql:/username:passwordhost name:port/database/table nameCONNECTION=mysql:/usernamehost name/database/table name CONNECTION=mysql:/username:passwordhost name/database/table name 更多信息请查看IT技术专栏。