Cara mengatur replikasi master-master mysql

Cara mengatur replikasi master-master mysql

Replikasi Master-Slave MySQL adalah mengatur server budak untuk segera diperbarui segera setelah perubahan dilakukan di Master Server. Tetapi tidak akan memperbarui master jika ada perubahan yang dilakukan di server budak. Baca artikel ini untuk mengatur replikasi master-slave.

Artikel ini akan membantu Anda mengatur replikasi master-master antara server MySQL. Dalam pengaturan ini jika ada perubahan yang dilakukan di salah satu server akan memperbarui yang lain.

Rincian Pengaturan:
Master-1: 192.168.1.15 Master-2: 192.168.1.16 Database: mydb 

Jika Anda menggunakan berbagai versi MySQL yang berbeda di salah satu server menggunakan tautan ini untuk memeriksa kompatibilitas.

Langkah 1. Siapkan server MySQL Master-1

  • Edit file konfigurasi mysql dan tambahkan baris berikut di bawah bagian [mysqld].
  • # vim /etc /my.CNF 
    [mysqld] log-bin = mysql-bin binlog-db-db = mydb server-id = 1 
  • Restart server mysql untuk perubahan mulai berlaku.
  • # layanan mysqld restart 
  • Buat akun MySQL di server master-1 dengan hak istimewa Slave Replication yang akan terhubung ke Klien Replikasi ke Master.
  • mysql> hibah budak di *.* Ke 'repl_user'@'%' diidentifikasi oleh 'SecretPassword'; mysql> hak istimewa flush; 
  • Pernyataan Write Blok pada Semua Tabel, jadi tidak ada perubahan yang dapat dilakukan setelah mengambil cadangan.
  • mysql> Gunakan mydb; mysql> tabel flush dengan kunci baca; 
  • Periksa nama file log biner saat ini (file) dan nilai offset (posisi) saat ini menggunakan perintah berikut.
  • MySQL> Tampilkan Status Master; +------------------+----------+--------------+------------------+ | File | Posisi | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+---- --------------+ | mysql-bin.000003 | 332 | mydb | | +------------------+----------+--------------+---- --------------+ 1 baris di set (0.00 detik) 

    Output di atas menunjukkan bahwa file biner saat ini digunakan mysql-bin.000003 dan nilai offset adalah 332. Catat nilai-nilai ini untuk digunakan pada server master-2 pada langkah berikutnya.

  • Ambil cadangan database dan salin ke server MySQL lain.
  • # mysqldump -u root -p mydb> mydb.SQL # scp mydb.SQL 192.168.1.16:/opt/ 
  • Setelah menyelesaikan cadangan, lepaskan kunci baca dari tabel, sehingga perubahan dapat dilakukan.
  • MySQL> Buka Kunci Tabel; 

    Langkah 2. Mengatur server MySQL Master-2

  • Edit file konfigurasi MySQL Master-2 dan tambahkan nilai berikut di bawah bagian [mysqld].
  • # vim /etc /my.CNF 
    [mysqld] log-bin = mysql-bin binlog-db-db = mydb server-id = 1 

    server-id selalu menjadi nilai numerik non nol. Nilai ini tidak akan pernah serupa dengan server master atau budak lainnya.

  • Restart server mysql, jika Anda sudah mengkonfigurasi penggunaan replikasi -skip-slave-start di awal untuk tidak langsung terhubung ke master server.
  • # layanan mysqld restart 
  • Kembalikan Cadangan Basis Data yang Diambil dari Master Server.
  • # mysql -u root -p mydb < /opt/mydb.sql 
  • Buat akun MySQL di server master-1 dengan hak istimewa Slave Replication yang akan terhubung ke Klien Replikasi ke Master.
  • mysql> hibah budak di *.* Ke 'repl_user'@'%' diidentifikasi oleh 'SecretPassword'; mysql> hak istimewa flush; 
  • Periksa nama file log biner saat ini (file) dan nilai offset (posisi) saat ini menggunakan perintah berikut.
  • MySQL> Tampilkan Status Master; +------------------+----------+--------------+------------------+ | File | Posisi | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+---- --------------+ | mysql-bin.000001 | 847 | mydb | | +------------------+----------+--------------+---- --------------+ 1 baris di set (0.00 detik) 

    Output di atas menunjukkan bahwa file biner saat ini digunakan mysql-bin.000001 dan nilai offset adalah 847. Catat nilai -nilai ini untuk digunakan di Langkah 3.

  • Pengaturan Nilai Opsi di Server Slave Menggunakan Perintah berikut.
  • mysql> ubah master menjadi master_host = "192.168.1.15 ", -> master_user =" repl_user ", -> master_password =" SecretPassword ", -> master_log_file =" mysql -bin.000003 ", -> master_log_pos = 332; 

    Langkah 3: Pengaturan Lengkap di MySQL Master-1

    Masuk ke MySQL Master-1 Server dan jalankan perintah berikut.

    mysql> ubah master menjadi master_host = "192.168.1.16 ", master_user =" repl_user ", master_password =" SecretPassword ", master_log_file =" mysql-bin.000001 ", master_log_pos = 847; 
    Langkah 4: Mulai budak di kedua server

    Jalankan perintah berikut di kedua server untuk memulai proses budak replikasi.

    mysql> slave start; 

    Replikasi Master-Master MySQL telah berhasil dikonfigurasi pada sistem Anda dan dalam mode kerja. Untuk menguji apakah replikasi berfungsi, buat perubahan di salah satu server dan periksa apakah perubahan mencerminkan server lain.

    Terima kasih telah menggunakan tutorial ini, jika itu membantu Anda maka jangan lupa membagikannya dengan teman Anda.