首页 > 数据库 > MySQL > 正文

Mysql 开启Federated引擎的方法

2024-07-24 12:48:52
字体:
来源:转载
供稿:网友
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)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表