欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql 開(kāi)啟Federated引擎的方法

 更新時(shí)間:2012年12月16日 13:21:43   作者:  
FEDERATED是其中一個(gè)專(zhuān)門(mén)針對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。一般情況下在本地?cái)?shù)據(jù)庫(kù)中建表會(huì)在數(shù)據(jù)庫(kù)目錄中生成相應(yīng)的表定義文件,并同時(shí)生成相應(yīng)的數(shù)據(jù)文件
MySQL中針對(duì)不同的功能需求提供了不同的存儲(chǔ)引擎。所謂的存儲(chǔ)引擎也就是MySQL下特定接口的具體實(shí)現(xiàn)。

FEDERATED是其中一個(gè)專(zhuān)門(mén)針對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。一般情況下在本地?cái)?shù)據(jù)庫(kù)中建表會(huì)在數(shù)據(jù)庫(kù)目錄中生成相應(yīng)的表定義文件,并同時(shí)生成相應(yīng)的數(shù)據(jù)文件。
但通過(guò)FEDERATED引擎創(chuàng)建的表只是在本地有表定義文件,數(shù)據(jù)文件則存在于遠(yuǎn)程數(shù)據(jù)庫(kù)中(這一點(diǎn)很重要)。

通過(guò)這個(gè)引擎可以實(shí)現(xiàn)類(lèi)似Oracle 下DBLINK的遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn)功能。

使用show engines 命令查看數(shù)據(jù)庫(kù)是否已支持FEDERATED引擎:

Support 的值有以下幾個(gè):

YES 支持并開(kāi)啟
DEFAULT 支持并開(kāi)啟, 并且為默認(rèn)引擎
NO 不支持
DISABLED 支持,但未開(kāi)啟

可以看出MyISAM為當(dāng)前默認(rèn)的引擎。
使用FEDERATED建表語(yǔ)句如下:
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'
創(chuàng)建成功后就可直接在本地查詢(xún)相應(yīng)的遠(yuǎn)程表了。

需要注意的幾點(diǎn):

1. 本地的表結(jié)構(gòu)必須與遠(yuǎn)程的完全一樣。
2.遠(yuǎn)程數(shù)據(jù)庫(kù)目前僅限MySQL
3.不支持事務(wù)
4.不支持表結(jié)構(gòu)修改

以下是補(bǔ)充:

參考一下在windows下的解決辦法,在my.cnf中增加一行

復(fù)制代碼 代碼如下:

federated

重啟mysql服務(wù)后,

mysql> show engines;



Federated存儲(chǔ)引擎可以使你在本地?cái)?shù)據(jù)庫(kù)中訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)中的數(shù)據(jù),針對(duì)federated存儲(chǔ)引擎表的查詢(xún)會(huì)被發(fā)送到遠(yuǎn)程數(shù)據(jù)庫(kù)的表上執(zhí)行,本地是不存儲(chǔ)任何數(shù)據(jù)的。
簡(jiǎn)要介紹后,是不是發(fā)現(xiàn)它和Oracle的database link(數(shù)據(jù)庫(kù)鏈接)非常相似,它所實(shí)現(xiàn)的功能和db link類(lèi)似,要在MySQL下找尋db link替代品的,federated存儲(chǔ)引擎是不二的選擇。

1.   查看當(dāng)前支持的存儲(chǔ)引擎

SQL>show engines;

復(fù)制代碼 代碼如下:

+------------+---------+------------------------------------------------------------+--------------+------+------------+  
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |  
+------------+---------+------------------------------------------------------------+--------------+------+------------+  
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |  
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |  
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |  
| InnoDB     | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |  
| MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |  
+------------+---------+------------------------------------------------------------+--------------+------+------------+  
5 rows in set (0.00 sec)

發(fā)現(xiàn)安裝MySQL時(shí)沒(méi)有編譯進(jìn)來(lái),只能現(xiàn)安裝了。

2.   安裝federated存儲(chǔ)引擎

由于編譯時(shí)沒(méi)有選擇federated,所以打算通過(guò)INSTALL PLUGIN的方式安裝,正常情況下,federated是支持動(dòng)態(tài)安裝的:
   === Federated Storage Engine ===
  Plugin Name:      federated
  Description:      Connects to tables on remote MySQL servers
  Supports build:   static and dynamic
  Configurations:   max, max-no-ndb

可是執(zhí)行以下命令時(shí)報(bào)錯(cuò):

SQL>install plugin federated soname 'ha_federated.so';
ERROR 1126 (HY000): Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_federated.so' (errno: 2 undefined symbol: dynstr_append_mem)
搜了一下,發(fā)現(xiàn)是個(gè)老問(wèn)題,竟然到現(xiàn)在都沒(méi)解決,可見(jiàn)MySQL團(tuán)隊(duì)的效率和管理的混亂。http://bugs.mysql.com/bug.php?id=40942
沒(méi)有辦法了,只有重新編譯MySQL源碼了, 加上--with-plugins=federated。從5.1.26開(kāi)始,默認(rèn)MySQL不啟用federated存儲(chǔ)引擎,所以需要在my.cnf中加入federated選項(xiàng)或是在命令行用--federated選項(xiàng)啟動(dòng)mysqld。編譯后的結(jié)果如下:

SQL>show engines;

復(fù)制代碼 代碼如下:

+------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
| Engine     | Support | Comment                                                                    | Transactions | XA   | Savepoints |  
+------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
| CSV        | YES     | CSV storage engine                                                         | NO           | NO   | NO         |  
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |  
| FEDERATED  | YES     | Federated MySQL storage engine                                             | NO           | NO   | NO         |  
| MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance                     | NO           | NO   | NO         |  
| InnoDB     | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |  
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |  
+------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
6 rows in set (0.00 sec)

至此,我們已經(jīng)可以使用federated存儲(chǔ)引擎了。

相關(guān)文章

最新評(píng)論