2011-03-06 81 views
29


我有mysql 44年5月1日如何在安装后在mysql中启用联合引擎?

 
mysql> show engines; 
+------------+---------+ 
| Engine  | Support | 
+------------+---------+ 
| ndbcluster | NO  | 
| MRG_MYISAM | YES  | 
| BLACKHOLE | YES  | 
| CSV  | YES  | 
| MEMORY  | YES  | 
| FEDERATED | NO  | 
| ARCHIVE | YES  | 
| InnoDB  | YES  | 
| MyISAM  | DEFAULT | 

现在,我需要能够在MySQL联邦引擎,我怎么能这样做呢?

回答

51

编辑/etc/my.cnf中和在的[mysqld]部分中,添加行:

 
federated 

它的相当于指定 - 在命令行上执行

+3

在Windows上,要修改的文件是安装目录中的my.ini文件(例如'C:\ Program Files \ MySQL \ MySQL Server 5.1') – 2012-12-10 08:23:57

+1

在Windows中,它也必须是下一件事在[mysqld]之后加上换行符,就像这样 - > [mysqld](换行符) 联合 – 2013-07-11 07:55:07

+2

无法得到这个工作,打开my.ini并在'[mysqld]'之后的新行中添加'federated',仍然没有看到它启用。我正在使用Windows 8上的MySQL 5.6.12。任何想法可能是错的? – 2013-07-29 06:01:03

5

与MySQL 5.0.64开始, FEDERATED存储引擎是在运行 服务器不 默认启用;要启用FEDERATED,您必须使用 --federated选项启动MySQL服务器二进制文件 。 — MySQL Documentation

要使用--federatedoption在配置文件中删除--

的my.cnf

[mysqld] 
federated 
25

我知道这篇文章有点旧,但似乎很多人都遇到联合引擎的问题。

当通过yum安装mysql二进制文件时,您已经拥有HA(高可用性)插件。您只需在mysql CLI中加载插件即可。

这里的基本过程是:

启动mysqld如果它尚未启动。确保'federated'不在/etc/my.cnf中。

EX:此时的/etc/my.cnf看起来像这样从一个标准的YUM安装....

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

登录到MySQL的CLI以root(或具有足够权限的另一个帐户)。

Type: show engines; 

你应该看不到任何联邦引擎在这一点上,像这样:

mysql> show engines; 
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+ 
| Engine  | Support | Comment             | Transactions | XA | Savepoints | 
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+ 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO    | NO | NO   | 
| CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
| InnoDB  | YES  | 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   | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
5 rows in set (0.00 sec) 

- >糊底< -

为了使盟员引擎,键入以下内容:

install plugin federated soname 'ha_federated.so' 

现在,当你'显示引擎'时,你会看到FEDERATED引擎,但关闭.. 。

它看起来是这样的:

 

    mysql> show engines; 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | Engine  | Support | Comment             | Transactions | XA | Savepoints | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | FEDERATED | NO  | Federated MySQL storage engine        | NULL   | NULL | NULL  | 
    | CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
    | MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
    | InnoDB  | YES  | 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   | 
    | MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO   | NO | NO   | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    6 rows in set (0.00 sec) 

您现在可以安全地添加行 '联合' 到/etc/my.cnf文件里是这样的:

 

    [mysqld] 
    datadir=/var/lib/mysql 
    socket=/var/lib/mysql/mysql.sock 
    user=mysql 
    # Disabling symbolic-links is recommended to prevent assorted security risks 
    symbolic-links=0 
    federated 

    [mysqld_safe] 
    log-error=/var/log/mysqld.log 
    pid-file=/var/run/mysqld/mysqld.pid 

重启mysqld(服务mysqld restart等)

重启后,回到mysql CLI。

Type 'show engines;' 

您现在应该看到FEDERATED引擎可用,并且以SUPPORT方式显示为YES。

 

    mysql> show engines; 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | Engine  | Support | Comment             | Transactions | XA | Savepoints | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | FEDERATED | YES  | Federated MySQL storage engine        | NO   | NO | NO   | 
    | CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
    | MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
    | InnoDB  | YES  | 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   | 
    | MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO   | NO | NO   | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    6 rows in set (0.00 sec) 

和你做......出去并建立联合表...

祝你好运!

+1

基本上,只能在my.cnf(或windows中的my.ini)中添加下一行:'[mysqld] federated',它可以被添加到文件末尾。 – 2014-04-10 12:50:36

+0

正如你所说,yum安装版本的mysql服务器不会添加“联合”支持。你的回答非常好,你救了我的一天! – serfer2 2015-06-29 09:42:48

+0

为我工作。谢谢。 – Shashank 2017-01-05 08:34:22