MySQL
5.1.14以降のバージョンでは、mysql
データベースはbinlog_format
の内容に従ってレプリケーションが実行されます。binlog_format=MIXED
の場合には、行ベースフォーマットを利用して
レプリケーションが行われます。通常は、これらのテーブルはGRANT
、REVOKE
を実行したり、トリガやストアドルーチン、またはビューに対する変更を行うことによって、間接的に更新されます。その場合、ステートメントベースレプリケーションを用いていると、各ステートメントがスレーブへ伝搬されます。
MySQL
5.1.13以前のバージョンでは、ユーザ権限はmysql
データベースがスレーブへレプリケーションされたときだけ伝搬されます。即ち、GRANT
/REVOKE
/SET
PASSWORD
/CREATE USER
/DROP
USER
などのコマンドは、mysqlデータベースが複製されるように設定されている場合のみスレーブへ伝搬されます。
すべてのデータベースを複製する場合に、ユーザ権限に影響するステートメントを不要とするときは、--replicate-wild-ignore-table=mysql.%
オプションを使用して、スレーブが
mysql
データベースを複製しないように設定します。このスレーブは、権限に関連する
SQL
コマンドを実行することは有効ではない、と認識するため、そのクエリは実行されません。