程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql 開啟Federated引擎的辦法

Mysql 開啟Federated引擎的辦法

編輯:MySQL綜合教程

Mysql 開啟Federated引擎的辦法。本站提示廣大學習愛好者:(Mysql 開啟Federated引擎的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql 開啟Federated引擎的辦法正文


MySQL中針對分歧的功效需求供給了分歧的存儲引擎。所謂的存儲引擎也就是MySQL下特定接口的詳細完成。

FEDERATED是個中一個專門針對長途數據庫的完成。普通情形下在當地數據庫中建表會在數據庫目次中生成響應的表界說文件,並同時生成響應的數據文件。
但經由過程FEDERATED引擎創立的表只是在當地有表界說文件,數據文件則存在於長途數據庫中(這一點很主要)。

經由過程這個引擎可以完成相似Oracle 下DBLINK的長途數據拜訪功效。

應用show engines 敕令檢查數據庫能否已支撐FEDERATED引擎:

Support 的值有以下幾個:

YES 支撐並開啟 DEFAULT 支撐並開啟, 而且為默許引擎 NO 不支撐 DISABLED 支撐,但未開啟
可以看出MyISAM為以後默許的引擎。
應用FEDERATED建表語句以下:
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'
創立勝利後便可直接在當地查詢響應的長途表了。

須要留意的幾點:

1. 當地的表構造必需與長途的完整一樣。
2.長途數據庫今朝僅限MySQL
3.不支撐事務
4.不支撐表構造修正

以下是彌補:

參考一下在windows下的處理方法,在my.cnf中增長一行


federated

重啟mysql辦事後,

mysql> show engines;



Federated存儲引擎可使你在當地數據庫中拜訪長途數據庫中的數據,針對federated存儲引擎表的查詢會被發送到長途數據庫的表上履行,當地是不存儲任何數據的。
扼要引見後,是否是發明它和Oracle的database link(數據庫鏈接)異常類似,它所完成的功效和db link相似,要在MySQL下找尋db link替換品的,federated存儲引擎是不貳的選擇。

1.   檢查以後支撐的存儲引擎

SQL>show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+  
| 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)

發明裝置MySQL時沒有編譯出去,只能現裝置了。

2.   裝置federated存儲引擎

因為編譯時沒有選擇federated,所以盤算經由過程INSTALL PLUGIN的方法裝置,正常情形下,federated是支撐靜態裝置的:
   === Federated Storage Engine ===
  Plugin Name:      federated
  Description:      Connects to tables on remote MySQL servers
  Supports build:   static and dynamic
  Configurations:   max, max-no-ndb

可是履行以下敕令時報錯:

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)
搜了一下,發明是個老成績,居然到如今都沒處理,可見MySQL團隊的效力和治理的凌亂。http://bugs.mysql.com/bug.php?id=40942
沒有方法了,只要從新編譯MySQL源碼了, 加上--with-plugins=federated。從5.1.26開端,默許MySQL不啟用federated存儲引擎,所以須要在my.cnf中參加federated選項或是在敕令行用--federated選項啟動mysqld。編譯後的成果以下:

SQL>show engines;

+------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
| 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)

至此,我們曾經可使用federated存儲引擎了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved