すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:自己管理 MySQL データベースのアカウントを作成し、バイナリログを構成する

最終更新日:Nov 09, 2025

DTS タスクのソースデータベースが自己管理 MySQL データベースである場合、タスクを構成する前にデータベースアカウントを作成し、バイナリログを構成する必要があります。このステップは、事前チェックに合格し、タスクが期待どおりに実行されるようにするために必要です。

シナリオと権限

シナリオ

必要な権限

ソースデータベースは自己管理 MySQL データベースであり、増分データ移行を実行します。

  • 移行するオブジェクトに対する SELECT 権限。

  • REPLICATION CLIENT、REPLICATION SLAVE、および SHOW VIEW 権限。

  • データベースとテーブルを作成する権限。これらの権限により、DTS は test という名前のデータベースを作成して、バイナリログの位置を進めることができます。

データ同期タスクのソースデータベースは自己管理 MySQL データベースです。

  • 同期するオブジェクトに対する SELECT 権限。

  • REPLICATION CLIENT、REPLICATION SLAVE、および SHOW VIEW 権限。

  • データベースとテーブルを作成する権限。これらの権限により、DTS は test という名前のデータベースを作成して、バイナリログの位置を進めることができます。

変更追跡タスクのソースデータベースは自己管理 MySQL データベースです。

  • 変更追跡の対象オブジェクトに対する SELECT 権限。

  • REPLICATION CLIENT、REPLICATION SLAVE、および SHOW VIEW 権限。

  • データベースとテーブルを作成する権限。これらの権限により、DTS は test という名前のデータベースを作成して、バイナリログの位置を進めることができます。

影響

この操作では、MySQL サービスを再起動する必要があります。サービスの中断を避けるため、この操作はオフピーク時に実行してください。

手順

  1. 自己管理 MySQL データベースにログインします。

  2. 自己管理 MySQL データベースにデータ移行またはデータ同期用のアカウントを作成します。

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    説明
    • username: 作成するアカウント。

    • host: アカウントがデータベースにログインできるホスト。アカウントが任意のホストからログインできるようにするには、パーセント記号 (%) を使用します。

    • password: アカウントのパスワード。

    たとえば、任意のホストからログインできるパスワード Dts123456 を持つ dtsmigration という名前のアカウントを作成するには、次のコマンドを実行します。

    CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';
  3. アカウントに必要な権限を付与します。詳細については、「シナリオと権限」をご参照ください。

    • 指定されたデータベースとテーブルに対するアカウント権限を付与します。

      GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
    • データベースとテーブルを作成するアカウント権限を付与します。

      GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;
    説明
    • privileges: SELECT、INSERT、UPDATE など、アカウントに付与する操作権限。すべての権限を付与するには、ALL を使用します。

    • databasename: データベース名。すべてのデータベースに対する権限を付与するには、アスタリスク (*) を使用します。

    • tablename: テーブル名。すべてのテーブルに対する権限を付与するには、アスタリスク (*) を使用します。

    • username: 権限を付するアカウント。

    • host: アカウントがログインできるホスト。アカウントが任意のホストからログインできるようにするには、パーセント記号 (%) を使用します。

    • WITH GRANT OPTION: GRANT コマンドを実行する権限をアカウントに付与します。このパラメーターはオプションです。

    たとえば、次のコマンドを実行して、dtsmigration アカウントにすべてのデータベースとテーブルに対するすべての権限を付与し、アカウントが任意のホストからログインできるようにします。

    GRANT ALL ON *.* TO 'dtsmigration'@'%';
  4. 自己管理 MySQL データベースのバイナリログを有効にして構成します。

    Linux コマンド

    1. vim コマンドを使用して、my.cnf 構成ファイル内の次のパラメーターを変更します。

      log_bin=mysql_bin
      binlog_format=row
      
      # MySQL 8.0 より前のバージョンでは、expire_logs_days を使用してバイナリログの保持期間を設定します。デフォルト値は 0 で、バイナリログが期限切れにならないことを意味します。
      # MySQL 8.0 以降では、binlog_expire_logs_seconds を使用してバイナリログの保持期間を設定します。デフォルト値は 2592000 秒 (30 日) です。
      # バイナリログの保持期間を 7 日未満に設定した場合、次のパラメーターを使用して保持期間を 7 日以上に設定できます。
      # expire_logs_days=7
      # binlog_expire_logs_seconds=604800
      
      # このパラメーターを 1 より大きい整数に設定します。
      server_id=2
      
      # 自己管理 MySQL データベースのバージョンが 5.6 より後の場合は、このパラメーターを設定する必要があります。
      binlog_row_image=full
      
      # 自己管理データベースがデュアルプライマリクラスターにデプロイされている場合は、このパラメーターを有効にします。
      # log_slave_updates=ON
    2. ファイルを変更した後、MySQL プロセスを再起動します。

      /etc/init.d/mysqld restart

    Windows コマンド

    1. my.ini 構成ファイル内の次のパラメーターを変更します。

      log_bin=mysql_bin
      binlog_format=row
      
      # MySQL 8.0 より前のバージョンでは、expire_logs_days を使用してバイナリログの保持期間を設定します。デフォルト値は 0 で、バイナリログが期限切れにならないことを意味します。
      # MySQL 8.0 以降では、binlog_expire_logs_seconds を使用してバイナリログの保持期間を設定します。デフォルト値は 2592000 秒 (30 日) です。
      # バイナリログの保持期間を 7 日未満に設定した場合、次のパラメーターを使用して保持期間を 7 日以上に設定できます。
      # expire_logs_days=7
      # binlog_expire_logs_seconds=604800
      
      # このパラメーターを 1 より大きい整数に設定します。
      server_id=2
      
      # 自己管理 MySQL データベースのバージョンが 5.6 より後の場合は、このパラメーターを設定する必要があります。
      binlog_row_image=full
      
      # 自己管理データベースがデュアルプライマリクラスターにデプロイされている場合は、このパラメーターを有効にします。
      # log_slave_updates=ON
    2. ファイルを変更した後、MySQL サービスを再起動します。Windows サービスマネージャーでサービスを再起動するか、次のコマンドを実行します。

      net stop mysql
      net start mysql