MySQL Plugin ’FEDERATED’ is disabled. について

ときどき「Plugin 'FEDERATED' is disabled.」で検索してくる方がいらっしゃるようなので。
MySQL 5.1.26以降、FEDERATEDストレージエンジンはデフォルトで無効化されるようになりました。そのためMySQL 5.1のバイナリディストリビューションを使用している場合、mysqldの起動時に以下のようなNoteがエラーログに出力されます。これは正常な動作です。

090925 11:11:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
090925 11:11:38 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Neither mutexes nor rw_locks use GCC atomic builtins.
090925 11:11:39  InnoDB: highest supported file format is Barracuda.
090925 11:11:41 InnoDB Plugin 1.0.4 started; log sequence number 33107553377
090925 11:11:41 [Note] Event Scheduler: Loaded 0 events
090925 11:11:41 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.39-community-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)

mysqldの停止時にはWarningが出力されます。これもFEDERATEDストレージエンジンが無効化されていることによるものです。

091003 22:41:23 [Note] /usr/sbin/mysqld: Normal shutdown

091003 22:41:23 [Note] Event Scheduler: Purging the queue. 0 events
091003 22:41:23  InnoDB: Starting shutdown...
091003 22:41:26  InnoDB: Shutdown completed; log sequence number 36647590017
091003 22:41:26 [Warning] Forcing shutdown of 1 plugins
091003 22:41:26 [Note] /usr/sbin/mysqld: Shutdown complete

091003 22:41:26 mysqld_safe mysqld from pid file /var/lib/mysql/sandbox03.pid ended

SHOW PLUGINSコマンドで、FEDERATEDストレージエンジンが無効化されていることが確認できます。

mysql> show plugins;
 +---------------------+----------+--------------------+---------------------+---------+
 | Name                | Status   | Type               | Library             | License |
 +---------------------+----------+--------------------+---------------------+---------+
 | binlog              | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | partition           | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | ARCHIVE             | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | BLACKHOLE           | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | CSV                 | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | FEDERATED           | DISABLED | STORAGE ENGINE     | NULL                | GPL     |
 | MEMORY              | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | MyISAM              | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | MRG_MYISAM          | ACTIVE   | STORAGE ENGINE     | NULL                | GPL     |
 | InnoDB              | ACTIVE   | STORAGE ENGINE     | ha_innodb_plugin.so | GPL     |
 | INNODB_TRX          | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_LOCKS        | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_LOCK_WAITS   | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_CMP          | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_CMP_RESET    | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_CMPMEM       | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 | INNODB_CMPMEM_RESET | ACTIVE   | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL     |
 +---------------------+----------+--------------------+---------------------+---------+

my.cnfに以下の設定を記述すれば、FEDERATEDストレージエンジンを再び有効化することができます。

federated
# federated = 1 でも可

この変更はBug#37069で行われたものです。またMySQLのコミュニティ担当であるKaj Arnö氏が本件について経緯を説明しています。曰く、

  • FEDERATEDストレージエンジンには潜在的なセキュリティリスクがあることが分かった
  • すでに利用しているユーザもいるので、機能自体は削除せずデフォルトで無効化することにした
  • 商用環境ではなるべく使わないでほしい
  • 今後FEDERATEDストレージエンジンを置き換える機能を作る予定だ

ということで、FEDERATEDストレージエンジンの利用を検討されている方は十分ご注意ください。