Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  SSL を使用してレプリケーションをセットアップする

17.3.7 SSL を使用してレプリケーションをセットアップする

レプリケーション中に必要なバイナリログの転送を暗号化するために SSL を使用するには、マスターとスレーブの両方が SSL ネットワーク接続をサポートする必要があります。どちらかのホストが SSL 接続をサポートしない場合は (SSL 用にコンパイルまたは構成されていなかったため)、SSL 接続ベースのレプリケーションは実現できません。

SSL 接続を使用するレプリケーションをセットアップすることは、SSL を使用するサーバーとクライアントをセットアップすることに似ています。マスターで使用できる適切なセキュリティー証明書、および各スレーブで同様の証明書 (同じ認証局からの) を取得 (または作成) する必要があります。

サーバーとクライアントを SSL 接続用にセットアップする際の詳細は、セクション6.3.10.2「SSL を使用するための MySQL の構成」を参照してください。

マスター上で SSL を有効にするには、適切な証明書を作成または取得してから、マスターの my.cnf ファイルの [mysqld] セクション内でマスターの構成に次の構成オプションを追加する必要があります。

[mysqld]
ssl-ca=cacert.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem

証明書へのパスは相対でも絶対でもかまいません。この目的のためには完全パスを常に使用することをお勧めします。

オプションは次のとおりです。

  • ssl-ca は認証局 (CA) 証明書を識別します。

  • ssl-cert はサーバー公開鍵を識別します。これをクライアントに送信し、それに含まれる CA 証明書と照合して認証できます。

  • ssl-key はサーバー秘密鍵を識別します。

スレーブでは、SSL 情報を設定するために 2 つのオプションを利用できます。スレーブの my.cnf ファイルの [client] セクションにスレーブ証明書を追加するか、または CHANGE MASTER TO ステートメントを使用して SSL 情報を明示的に指定できます。

  • オプションファイルを使用してスレーブ証明書を追加するには、スレーブの my.cnf ファイルの [client] セクションに次の行を追加します。

    [client]
    ssl-ca=cacert.pem
    ssl-cert=client-cert.pem
    ssl-key=client-key.pem

    スレーブがマスターに接続しないように --skip-slave-start オプションを使用して、スレーブサーバーを再起動します。SSL 接続を有効にする MASTER_SSL オプションを使用して、マスター構成を指定する CHANGE MASTER TO を使用します。

    mysql> CHANGE MASTER TO
        -> MASTER_HOST='master_hostname',
        -> MASTER_USER='replicate',
        -> MASTER_PASSWORD='password',
        -> MASTER_SSL=1;
  • CHANGE MASTER TO ステートメントを使用して SSL 証明書のオプション指定するには、SSL オプションを付加します。

    mysql> CHANGE MASTER TO
        -> MASTER_HOST='master_hostname',
        -> MASTER_USER='replicate',
        -> MASTER_PASSWORD='password',
        -> MASTER_SSL=1,
        -> MASTER_SSL_CA = 'ca_file_name',
        -> MASTER_SSL_CAPATH = 'ca_directory_name',
        -> MASTER_SSL_CERT = 'cert_file_name',
        -> MASTER_SSL_KEY = 'key_file_name';

マスター情報が更新されたあとに、スレーブレプリケーションプロセスを起動します。

mysql> START SLAVE;

SHOW SLAVE STATUS ステートメントを使用して、SSL 接続が正常に確立されたことを確認できます。

CHANGE MASTER TO ステートメントの詳細については、セクション13.4.2.1「CHANGE MASTER TO 構文」を参照してください。

レプリケーション中に SSL 接続の使用を適用する場合は、REPLICATION SLAVE 権限のユーザーを作成して、そのユーザーに REQUIRE SSL オプションを使用します。例:

mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.*
    -> TO 'repl'@'%.mydomain.com' REQUIRE SSL;

アカウントがすでに存在する場合は、このステートメントでそれに REQUIRE SSL を追加できます。

mysql> GRANT USAGE ON *.*
    -> TO 'repl'@'%.mydomain.com' REQUIRE SSL;