全部产品
Search
文档中心

Data Transmission Service:Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasikan binary logging

更新时间:Nov 11, 2025

Jika database sumber untuk tugas DTS Anda adalah database MySQL yang dikelola sendiri, Anda harus membuat akun database dan mengonfigurasi binary logging sebelum menyiapkan tugas tersebut. Langkah ini diperlukan agar lulus Pemeriksaan Awal dan memastikan tugas berjalan sesuai harapan.

Skenario dan izin

Skenario

Izin yang diperlukan

Database sumber adalah database MySQL yang dikelola sendiri, dan Anda ingin melakukan migrasi data inkremental.

  • Izin SELECT pada objek yang akan dimigrasikan.

  • Izin REPLICATION CLIENT, REPLICATION SLAVE, dan SHOW VIEW.

  • Izin untuk membuat database dan tabel. Izin ini memungkinkan DTS membuat database bernama test untuk memajukan posisi log biner.

Database sumber untuk tugas sinkronisasi data adalah database MySQL yang dikelola sendiri.

  • Izin SELECT pada objek yang akan disinkronkan.

  • Izin REPLICATION CLIENT, REPLICATION SLAVE, dan SHOW VIEW.

  • Izin untuk membuat database dan tabel. Izin ini memungkinkan DTS membuat database bernama test untuk memajukan posisi log biner.

Database sumber untuk tugas pelacakan perubahan adalah database MySQL yang dikelola sendiri.

  • Izin SELECT pada objek untuk pelacakan perubahan.

  • Izin REPLICATION CLIENT, REPLICATION SLAVE, dan SHOW VIEW.

  • Izin untuk membuat database dan tabel. Izin ini memungkinkan DTS membuat database bernama test untuk memajukan posisi log biner.

Dampak

Operasi ini mengharuskan Anda me-restart layanan MySQL. Untuk menghindari gangguan pada layanan Anda, lakukan operasi ini di luar jam sibuk.

Prosedur

  1. Masuk ke database MySQL yang dikelola sendiri.

  2. Buat akun untuk migrasi atau sinkronisasi data di database MySQL yang dikelola sendiri.

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    Catatan
    • username: Akun yang akan dibuat.

    • host: Host dari mana akun dapat mengakses database. Untuk mengizinkan akses dari host mana pun, gunakan tanda persen (%).

    • password: Kata sandi untuk akun tersebut.

    Sebagai contoh, untuk membuat akun bernama dtsmigration dengan kata sandi Dts123456 yang dapat mengakses dari host mana pun, jalankan perintah berikut:

    CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';
  3. Berikan izin yang diperlukan kepada akun tersebut. Untuk informasi selengkapnya, lihat Skenario dan izin.

    • Berikan izin akun pada database dan tabel tertentu.

      GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
    • Berikan izin akun untuk membuat database dan tabel.

      GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;
    Catatan
    • privileges: Izin operasi yang diberikan kepada akun, seperti SELECT, INSERT, dan UPDATE. Untuk memberikan semua izin, gunakan ALL.

    • databasename: Nama database. Untuk memberikan izin pada semua database, gunakan tanda bintang (*).

    • tablename: Nama tabel. Untuk memberikan izin pada semua tabel, gunakan tanda bintang (*).

    • username: Akun yang akan diberikan izin.

    • host: Host dari mana akun dapat mengakses. Untuk mengizinkan akses dari host mana pun, gunakan tanda persen (%).

    • WITH GRANT OPTION: Memberikan izin kepada akun untuk menjalankan perintah GRANT. Parameter ini bersifat opsional.

    Sebagai contoh, jalankan perintah berikut untuk memberikan akun dtsmigration semua izin pada semua database dan tabel serta mengizinkan akses dari host mana pun:

    GRANT ALL ON *.* TO 'dtsmigration'@'%';
  4. Aktifkan dan konfigurasikan binary logging untuk database MySQL yang dikelola sendiri.

    Perintah Linux

    1. Gunakan perintah vim untuk mengubah parameter berikut dalam file konfigurasi my.cnf:

      log_bin=mysql_bin
      binlog_format=row
      
      # Untuk versi MySQL sebelum 8.0, gunakan expire_logs_days untuk mengatur periode retensi log biner. Nilai default-nya adalah 0, yang berarti log biner tidak pernah kedaluwarsa.
      # Untuk MySQL 8.0 dan versi setelahnya, gunakan binlog_expire_logs_seconds untuk mengatur periode retensi log biner. Nilai default-nya adalah 2592000 detik (30 hari).
      # Jika Anda mengatur periode retensi log biner kurang dari 7 hari, Anda dapat menggunakan parameter berikut untuk mengatur periode retensi menjadi 7 hari atau lebih.
      # expire_logs_days=7
      # binlog_expire_logs_seconds=604800
      
      # Atur parameter ini ke bilangan bulat lebih besar dari 1.
      server_id=2
      
      # Jika versi database MySQL yang dikelola sendiri lebih baru dari 5.6, Anda harus mengatur parameter ini.
      binlog_row_image=full
      
      # Jika database yang dikelola sendiri diterapkan dalam kluster dual-primary, aktifkan parameter ini.
      # log_slave_updates=ON
    2. Setelah mengubah file tersebut, restart proses MySQL:

      /etc/init.d/mysqld restart

    Perintah Windows

    1. Ubah parameter berikut dalam file konfigurasi my.ini:

      log_bin=mysql_bin
      binlog_format=row
      
      # Untuk versi MySQL sebelum 8.0, gunakan expire_logs_days untuk mengatur periode retensi log biner. Nilai default-nya adalah 0, yang berarti log biner tidak pernah kedaluwarsa.
      # Untuk MySQL 8.0 dan versi setelahnya, gunakan binlog_expire_logs_seconds untuk mengatur periode retensi log biner. Nilai default-nya adalah 2592000 detik (30 hari).
      # Jika Anda mengatur periode retensi log biner kurang dari 7 hari, Anda dapat menggunakan parameter berikut untuk mengatur periode retensi menjadi 7 hari atau lebih.
      # expire_logs_days=7
      # binlog_expire_logs_seconds=604800
      
      # Atur parameter ini ke bilangan bulat lebih besar dari 1.
      server_id=2
      
      # Jika versi database MySQL yang dikelola sendiri lebih baru dari 5.6, Anda harus mengatur parameter ini.
      binlog_row_image=full
      
      # Jika database yang dikelola sendiri diterapkan dalam kluster dual-primary, aktifkan parameter ini.
      # log_slave_updates=ON
    2. Setelah mengubah file tersebut, restart layanan MySQL. Anda dapat me-restart layanan tersebut melalui Windows Services Manager atau dengan menjalankan perintah berikut:

      net stop mysql
      net start mysql