Cara Mengatur Replikasi MySQL Master-Slave di RHEL 8


Replikasi MySQL adalah proses di mana data dari satu server secara otomatis disalin atau direplikasi ke server cadangan lain secara real-time. Replikasi memberikan redundansi dan toleransi kesalahan serta memberikan ketenangan pikiran kepada pengguna bahwa bahkan setelah kegagalan di server master, data masih dapat dipulihkan.

Dalam tutorial ini, Anda akan mempelajari cara mengonfigurasi dan menyiapkan replikasi master-slave MySQL di Linux RHEL 8.

Prasyarat

Dalam pengaturannya, kita akan memiliki dua server yang menjalankan RHEL 8 dengan alamat IP berikut.

Master = 173.82.120.14
Slave  = 173.82.115.165

Sekarang mari kita lanjutkan dan lihat bagaimana kita dapat mengonfigurasi pengaturan replikasi MySQL Master-slave di RHEL 8 Linux.

Langkah 1: Instal MySQL di Server Master dan Slave

1. Versi terbaru MySQL 8.x sudah disertakan dalam repositori default RHEL 8 dan Anda dapat menginstalnya menggunakan yang berikut ini perintah enak.

yum -y install @mysql

Langkah 2: Amankan MySQL di Server Master dan Slave

Setelah instalasi, Anda sekarang harus memulai layanan MySQL yang baru saja Anda instal dan membuatnya dimulai secara otomatis setiap kali Anda memulai server. Oleh karena itu, gunakan perintah berikut.

systemctl enable mysqld
systemctl start mysqld

Selanjutnya, Anda perlu mengamankan instalasi MySQL Anda dengan menjalankan skrip keamanan yang disertakan dengan beberapa operasi berbasis keamanan seperti mengatur kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh, menghapus database pengujian dan memuat ulang hak istimewa.

mysql_secure_installation

Lanjutkan dengan perintah selanjutnya dan jawab Ya untuk semua pertanyaan, jadi siapkan server untuk praktik keamanan terbaik.

Langkah 3: Mengonfigurasi Server Master MySQL

Untuk memulai konfigurasi server Master, lanjutkan dan buka file konfigurasi MySQL dengan mengetikkan perintah berikut.

sudo vim /etc/my.cnf

Di bagian mysqld, tambahkan baris seperti yang ditunjukkan di bawah ini.

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin

Terakhir, mulai ulang layanan MySQL.

sudo systemctl restart mysqld

Sekarang kita akan membuat pengguna replikasi. Oleh karena itu, masuklah ke server master MySQL Anda sebagai pengguna root dan berikan kata sandinya.

sudo mysql -u root -p

Sekarang jalankan perintah berikut untuk membuat pengguna replika sekaligus memberikan akses budak kepada pengguna. Ingatlah untuk menggunakan alamat IP mesin Anda.

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

Sekarang, Anda akan mengetikkan perintah berikut yang akan mencetak nama file biner dan posisinya.

mysql> SHOW MASTER STATUS\G

Ingatlah untuk mencatat nama file yang dihasilkan msql-bin.000002 dan posisinya 939.

Langkah 4: Mengonfigurasi Server Budak MySQL

Sama seperti proses setup master, Anda harus melakukan perubahan berikut pada file konfigurasi mysql slave.

sudo vim  /etc/my.cnf

Tambahkan baris berikut dalam file konfigurasi di bagian mysqld.

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin

Mulai ulang servernya.

sudo systemctl restart mysqld

Sekarang langkah selanjutnya adalah mengkonfigurasi server slave untuk mereplikasi dari server Master. Masuk ke server MySQL.

sudo mysql -u root -p

Pertama, hentikan thread replikasi.

mysql> STOP SLAVE;

Sekarang, jalankan kueri berikut yang akan mengonfigurasi budak untuk direplikasi dari server Master.

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='Jupiter@2030' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

Pastikan Anda menggunakan nama pengguna IP dan kata sandi yang benar. Gunakan juga nama file dan posisi yang Anda dapatkan dari server master.

Terakhir, ketikkan perintah berikut untuk memulai thread budak.

mysql> START SLAVE;

Langkah 5: Menguji Replikasi MySQL Master-Slave

Pada titik ini, Anda telah menyelesaikan konfigurasi server master dan slave. Kami sekarang perlu memverifikasi apakah konfigurasi berfungsi dan apakah replikasi dapat dilakukan.

Untuk melakukan hal ini, pergilah ke server master dan login ke server database MySQL.

sudo mysql -u root -p

Buat database sampel.

mysql> CREATE DATABASE replication_database;

Sekarang pergilah ke server Slave dan masuk lagi ke server database MySQL.

sudo mysql -u root -p

Sekarang daftar semua database menggunakan perintah berikut.

mysql> SHOW DATABASES;

Jika Anda melihat database yang dibuat, berarti pengaturan MySQL Master-Slave Replication berfungsi.

Kesimpulan

Replikasi adalah proses yang cukup sederhana yang dapat dilakukan dengan mudah. Dalam panduan ini, Anda telah mempelajari cara membuat replikasi master MySQL ke slave di RHEL 8 Linux.