国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql 開啟Federated引擎的方法

2024-07-24 13:01:25
字體:
來源:轉載
供稿:網友
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;

Mysql 開啟Federated引擎的方法



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團隊的效率和管理的混亂。?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存儲引擎了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高密市| 通化县| 庐江县| 和政县| 永州市| 大名县| 东辽县| 高碑店市| 浦东新区| 图木舒克市| 昌黎县| 壤塘县| 邹城市| 北川| 靖宇县| 怀来县| 习水县| 金川县| 呼伦贝尔市| 泰州市| 龙海市| 宿迁市| 石林| 兰州市| 饶平县| 灵璧县| 中牟县| 威宁| 高邑县| 彭山县| 阜新市| 溆浦县| 沙田区| 榆社县| 扬州市| 舟山市| 万全县| 法库县| 册亨县| 鸡泽县| 铁岭县|