web-dev-qa-db-ja.com

インストール後にmysqlでフェデレーションエンジンを有効にするにはどうすればよいですか?


mysql 5.1.44があります

 mysql> show engine; 
 + ------------ + --------- + 
 |エンジン|サポート| 
 + ------------ + --------- + 
 | ndbcluster |いいえ| 
 | MRG_MYISAM |はい| 
 |ブラックホール|はい| 
 | CSV |はい| 
 |メモリ|はい| 
 | FEDERATED |いいえ| 
 |アーカイブ|はい| 
 | InnoDB |はい| 
 | MyISAM |デフォルト| 

今、mysqlでフェデレーテッドエンジンを有効にする必要がありますが、どうすれば有効にできますか?

35
Alaa

/etc/my.cnfを編集し、[mysqld]セクションで次の行を追加します。

フェデレーション

コマンドラインで--federatedを指定するのと同等です

57
Lina

投稿が少し古いことは知っていますが、多くの人がフェデレーションエンジンに問題を抱えているようです。

Mysqlバイナリがyumを介してインストールされると、すでにHA(高可用性)プラグインがあります。 mysql CLI内でプラグインをロードするだけです。

基本的なプロセスは次のとおりです。

Mysqldがまだ開始されていない場合は開始します。この時点で、「federated」が/etc/my.cnfにないことを確認してください。

例:現時点では、/ 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

Root(または十分な特権を持つ別のアカウント)でmysql CLIにログインします。

Type:   show engines;

この時点では、次のようなFEDERATEDエンジンは表示されないはずです。

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 Engineが表示されますが、オフになります...

次のようになります。

 
 mysql> show engine; 
 + ------------ + --------- + ------ -------------------------------------------------- ---- + -------------- + ------ + ------------ + 
 |エンジン|サポート|コメント|トランザクション| XA |セーブポイント| 
 + ------------ + --------- + ------------------- ----------------------------------------- + -------- ------ + ------ + ------------ + 
 | FEDERATED |いいえ|フェデレーテッドMySQLストレージエンジン| NULL | NULL | NULL | 
 | CSV |はい| CSVストレージエンジン|いいえ|いいえ|いいえ| 
 | MyISAM |デフォルト|優れたパフォーマンスを備えたMySQL 3.23のデフォルトエンジン|いいえ|いいえ|いいえ| 
 | InnoDB |はい|トランザクション、行レベルのロック、および外部キーをサポートします|はい|はい|はい| 
 |メモリ|はい|ハッシュベース、メモリに格納、一時テーブルに便利|いいえ|いいえ|いいえ| 
 | MRG_MYISAM |はい|同一のMyISAMテーブルのコレクション|いいえ|いいえ|いいえ| 
 + ------------ + --------- + ------------------- ----------------------------------------- + -------- ------ + ------ + ------------ + 
 6行セット(0.00秒)
 

次のように、行 'federated'を/etc/my.cnfファイルに安全に追加できます。

 
 [mysqld] 
 datadir =/var/lib/mysql 
 socket =/var/lib/mysql/mysql.sock 
 user = mysql 
#さまざまなセキュリティリスクを防ぐために、シンボリックリンクを無効にすることをお勧めします
 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エンジンが利用可能になり、サポートがYESになっているはずです。

 
 mysql> show engine; 
 + ------------ + --------- + ------ -------------------------------------------------- ---- + -------------- + ------ + ------------ + 
 |エンジン|サポート|コメント|トランザクション| XA |セーブポイント| 
 + ------------ + --------- + ------------------- ----------------------------------------- + -------- ------ + ------ + ------------ + 
 | FEDERATED |はい|フェデレーテッドMySQLストレージエンジン|いいえ|いいえ|いいえ| 
 | CSV |はい| CSVストレージエンジン|いいえ|いいえ|いいえ| 
 | MyISAM |デフォルト|優れたパフォーマンスを備えたMySQL 3.23のデフォルトエンジン|いいえ|いいえ|いいえ| 
 | InnoDB |はい|トランザクション、行レベルのロック、および外部キーをサポートします|はい|はい|はい| 
 |メモリー|はい|ハッシュベース、メモリに格納、一時テーブルに便利|いいえ|いいえ|いいえ| 
 | MRG_MYISAM |はい|同一のMyISAMテーブルのコレクション|いいえ|いいえ|いいえ| 
 + ------------ + --------- + ------------------- ----------------------------------------- + -------- ------ + ------ + ------------ + 
 6行セット(0.00秒)
 

完了しました...次に進み、フェデレートテーブルを作成します...

幸運を!

33

MySQL 5.0.64からは、実行中のサーバーでFEDERATEDストレージエンジンがデフォルトで有効になりません。 FEDERATEDを有効にするには、--federatedオプションを使用してMySQLサーバーバイナリを起動する必要があります。 — MySQLドキュメント

構成ファイルで--federatedoption を使用するには、--をドロップします。

my.cnf

[mysqld]
federated
6