STOP SLAVE [thread_types]
thread_types:
[thread_type [, thread_type] ... ]
thread_type: IO_THREAD | SQL_THREAD
スレーブスレッドを停止します。STOP SLAVE
には、SUPER
権限が必要です。推奨されるベストプラクティスとして、スレーブサーバーを停止する前に、スレーブ上で STOP SLAVE
を実行してください (詳細は、セクション5.1.12「シャットダウンプロセス」を参照してください)。
行ベースのロギング形式を使用している場合: 非トランザクションストレージエンジンを使用するいずれかのテーブルをレプリケートしている場合は、スレーブサーバーをシャットダウンする前にスレーブ上で STOP SLAVE
または STOP SLAVE SQL_THREAD
を実行するようにしてください (このセクションのあとの方にある「注」を参照してください)。
START SLAVE
と同様に、このステートメントを IO_THREAD
および SQL_THREAD
オプションとともに使用すると、停止される 1 つまたは複数のスレッドを指定できます。
MySQL 5.6.7 以降では、STOP SLAVE
によって進行中のトランザクションの暗黙的なコミットが発生します。セクション13.3.3「暗黙的なコミットを発生させるステートメント」を参照してください。
MySQL 5.6.11 からは、このステートメントを発行する前に、gtid_next
を AUTOMATIC
に設定する必要があります (Bug #16062608)。
MySQL 5.6.13 以降では、rpl_stop_slave_timeout
システム変数を設定することによって、タイムアウトまでに STOP SLAVE
が待機する時間を制御できます。これは、STOP SLAVE
ステートメントと、スレーブへのさまざまなクライアント接続を使用するほかのスレーブ SQL ステートメントとの間のデッドロックを回避するために使用できます。(Bug #16856735)
MySQL 5.6 では、STOP SLAVE
は、1 つ以上の非トランザクションテーブルに影響を与えている現在のレプリケーションイベントグループが実行を完了する (このようなレプリケーショングループが存在する場合) か、あるいはユーザーが KILL QUERY
または KILL CONNECTION
ステートメントを発行するまで待機します。(Bug #319、Bug #38205)
古いバージョンの MySQL (4.0.5 より前) では、このステートメントは SLAVE STOP
と呼ばれていました。その構文は、MySQL 5.6.1 の時点で受け入れられなくなりました。