MySQL サーバーは、基礎となるキーリングキーストア間での鍵の移行を可能にする操作モードをサポートしているため、DBA は MySQL インストールをあるキーリングプラグインから別のキーリングプラグインに切り替えることができます。 移行サーバー (キー移行モードで起動されたサーバー) は、クライアント接続を受け入れません。 かわりに、キーの移行に十分な時間だけ実行され、終了します。 移行サーバーは、コンソールにエラーを報告します (標準エラー出力)。
オフラインまたはオンラインのキー移行を実行できます:
ローカルホストで実行中のサーバーがソースキーストアまたは宛先キーストアを使用していないことが確実な場合は、オフライン移行が可能です。 この場合、移行中にサーバーを実行してキーストアコンテンツを変更することなく、移行サーバーはキーストアを変更できます。
ローカルホストで実行中のサーバーがソースキーストアまたは宛先キーストアを使用している場合は、オンライン移行を実行する必要があります。 この場合、移行サーバーは実行中のサーバーに接続し、キー移行の進行中にキーリング操作を一時停止するように指示します。
キーの移行操作の結果、移行前のキーとソースキーストアのキーが宛先キーストアに含まれます。 キーは移動されずにコピーされるため、ソースキーストアは移行の前後と同じです。 コピーするキーが宛先キーストアにすでに存在する場合は、エラーが発生し、宛先キーストアは事前統合状態にリストアされます。
キー移行モードでサーバーを起動するユーザーは、root
オペレーティングシステムユーザーではなく、キーリングファイルの読取りおよび書込み権限を持っている必要があります。
鍵の移行操作を実行するには、必要な鍵の移行オプションを決定します。 移行オプションは、関係するキーリングプラグインと、オフライン移行とオンライン移行のどちらを実行するかを示します:
-
ソースおよび宛先のキーリングプラグインを指定するには、次のオプションを指定します:
--keyring-migration-source
: 移行するキーを管理するソースキープラグイン。--keyring-migration-destination
: 移行された鍵のコピー先の宛先キーリングプラグイン。
これらのオプションは、キー移行モードで実行するようにサーバーに指示します。 両方のオプションは、すべてのキー移行操作に必須です。 ソースプラグインと移行先プラグインは異なる必要があり、移行サーバーは両方のプラグインをサポートする必要があります。
-
オフライン移行の場合、追加のキー移行オプションは必要ありません。
警告実行中のサーバーで使用されているキーストアを含むオフライン移行を実行しないでください。
-
オンライン移行の場合、現在実行中の一部のサーバーがソースキーストアまたは宛先キーストアを使用しています。 実行中のサーバーへの接続方法を示す主要な移行オプションを指定します。 これは、移行サーバーが実行中のサーバーに接続し、移行操作中にキーリングの使用を一時停止するように指示するために必要です。
次のいずれかのオプションを使用することは、オンライン移行を意味します:
--keyring-migration-host
: 実行中のサーバーがあるホスト。 これは常にローカルホストです。--keyring-migration-user
,--keyring-migration-password
: 実行中のサーバーへの接続に使用するアカウントのユーザー名とパスワード。--keyring-migration-port
: TCP/IP 接続の場合、実行中のサーバー上の接続先のポート番号。--keyring-migration-socket
: Unix ソケットファイルまたは Windows 名前付きパイプ接続の場合、実行中のサーバーで接続するソケットファイルまたは名前付きパイプ。
キー移行オプションの詳細は、セクション6.4.4.12「キーリングコマンドのオプション」 を参照してください。
前述のとおりに決定されたキー移行オプションを使用して (場合によっては他のオプションを使用して)、移行サーバーを起動します。 次の考慮事項に注意してください:
2 つのキーリングプラグインのほかの構成パラメータなど、ほかのサーバーオプションが必要になることがあります。 たとえば、
keyring_file
がプラグインのいずれかである場合、キーリングデータファイルの場所がデフォルトの場所でないときは、keyring_file_data
システム変数を設定する必要があります。 その他の非キーリングオプションも必要な場合があります。 これらのオプションを指定する方法の 1 つは、--defaults-file
を使用して、必要なオプションを含むオプションファイルに名前を付けることです。-
MySQL の実行に通常使用されるシステムアカウントとは異なるシステムアカウントから移行サーバーを起動すると、通常の操作中にサーバーからアクセスできないキーリングディレクトリまたはファイルが作成される場合があります。 通常、mysqld は
mysql
オペレーティングシステムユーザーとして実行されますが、isabel
としてログインしている間に移行サーバーを起動するとします。 移行サーバーによって作成された新しいディレクトリまたはファイルは、isabel
によって所有されます。mysql
オペレーティングシステムユーザーとして実行されているサーバーが、isabel
が所有するファイルシステムオブジェクトにアクセスしようとすると、後続の起動が失敗します。この問題を回避するには、
root
オペレーティングシステムユーザーとして移行サーバーを起動し、--user=
オプションを指定します。user_name
user_name
は、MySQL の実行に通常使用されるシステムアカウントです。 移行サーバーでは、パス名オプションの値はフルパスである必要があります。 相対パス名が予期したとおりに解決されない場合があります。
オフラインキー移行のコマンドラインの例:
mysqld --defaults-file=/usr/local/mysql/etc/my.cnf
--keyring-migration-source=keyring_file.so
--keyring-migration-destination=keyring_encrypted_file.so
--keyring_encrypted_file_password=password
オンラインキー移行のコマンドラインの例:
mysqld --defaults-file=/usr/local/mysql/etc/my.cnf
--keyring-migration-source=keyring_file.so
--keyring-migration-destination=keyring_encrypted_file.so
--keyring_encrypted_file_password=password
--keyring-migration-host=localhost
--keyring-migration-user=root
--keyring-migration-password=root_password
キー移行サーバーは、次のように移行操作を実行します:
(オンライン移行のみ) 接続オプションを使用して、実行中のサーバーに接続します。 接続に使用するアカウントには、グローバル
keyring_operations
システム変数 (SYSTEM_VARIABLES_ADMIN
または非推奨のSUPER
権限に加えてENCRYPTION_KEY_ADMIN
) を変更するために必要な権限が必要です。(オンライン移行のみ) 実行中のサーバーで
keyring_operations
を無効にします。 (実行中のサーバーがkeyring_operations
をサポートしている必要があります。)ソースおよび宛先のキーリングプラグインをロードします。
ソースキーリングから宛先キーリングにキーをコピーします。
キーリングプラグインをアンロードします。
(オンライン移行のみ) 実行中のサーバーで
keyring_operations
を有効にします。(オンライン移行のみ) 実行中のサーバーから切断します。
Exit.
キーの移行中にエラーが発生した場合、宛先プラグインにコピーされたキーは削除され、宛先キーストアは変更されません。
オンライン移行操作の場合、移行サーバーは、実行中のサーバーで keyring_operations
を有効または無効にします。 移行サーバーが異常終了した場合 (強制終了された場合など)、実行中のサーバーで keyring_operations
が再度有効化されず、キーリング操作を実行できない可能性があります。 この場合、実行中のサーバーに接続し、keyring_operations
を手動で有効にする必要がある場合があります。
オンラインキー移行操作が成功した後、実行中のサーバーの再起動が必要になる場合があります:
実行中のサーバーがソースキーストアを使用していた場合は、移行後に再起動する必要はありません。
移行前に実行中のサーバーがソースキーストアを使用していたが、移行後に宛先キーストアを使用する必要がある場合は、宛先キープラグインを使用するように再構成して再起動する必要があります。
実行中のサーバーが宛先キーストアを使用していて、それを引き続き使用している場合は、移行後に再起動して、移行先キーストアに移行されたすべてのキーをロードする必要があります。
MySQL サーバーのキー移行モードでは、単一の実行中のサーバーの一時停止がサポートされます。 関連するキーストアが複数のキーサーバーで使用されている場合にキーの移行を実行するには、次の手順を使用します:
実行中の各サーバーに手動で接続し、
keyring_operations=OFF
を設定します。移行サーバーを使用して、オフラインキー移行を実行します。
実行中の各サーバーに手動で接続し、
keyring_operations=ON
を設定します。
実行中のすべてのサーバーは、keyring_operations=ON
システム変数をサポートする必要があります。