Cara Mengatur Replikasi MySQL Master-Slave di Ubuntu 18.04
Replikasi master-slave MySQL adalah prosedur yang memungkinkan file database direplikasi atau disalin di satu atau lebih node dalam jaringan. Penyiapan ini memberikan redundansi dan toleransi kesalahan sehingga jika terjadi kegagalan di Node Master, database masih dapat dipulihkan di Node Slave. Hal ini memberikan ketenangan pikiran bagi pengguna bahwa semuanya tidak akan hilang dalam keadaan apa pun karena replika database masih dapat diambil dari server lain.
Dalam panduan ini, Anda akan mempelajari cara melakukan replikasi database MySQL Master-slave pada sistem Ubuntu 18.04.
Prasyarat
Dalam pengaturannya, kita akan memiliki dua server yang menjalankan Ubuntu 18.04 dengan alamat IP berikut.
Master server: 10.128.0.28
Slave server: 10.128.0.29
Sekarang mari selami dan lihat bagaimana kita dapat mengonfigurasi penyiapan replikasi Master-slave di Ubuntu.
Langkah 1: Instal MySQL pada Node Master dan Slave
Repositori Ubuntu berisi MySQL versi 5.7. Untuk memanfaatkan fitur baru dan menghindari potensi masalah, Anda harus menginstal versi MySQL terbaru. Tapi pertama-tama, mari perbarui kedua node menggunakan perintah apt berikut.
sudo apt update
Untuk menginstal MySQL di kedua node, jalankan perintah.
sudo apt install mysql-server mysql-client
Selanjutnya, Buka file konfigurasi mysql.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Pada Node master, gulir dan temukan atribut bind-address
seperti yang ditunjukkan di bawah ini.
bind-address =127.0.0.1
Ubah alamat loopback agar sesuai dengan alamat IP Node master.
bind-address =10.128.0.28
Selanjutnya, tentukan nilai untuk atribut server-id
di bagian [mysqld]
. Nomor yang Anda pilih tidak boleh cocok dengan nomor server-id lainnya. Mari kita berikan nilai 1
.
server-id =1
Di bagian paling akhir file konfigurasi, salin dan tempel baris di bawah ini.
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
Keluar dari file konfigurasi dan mulai ulang layanan MySQL agar perubahan diterapkan pada node Master.
sudo systemctl restart mysql
Untuk memverifikasi bahwa server MySQL berjalan seperti yang diharapkan, jalankan perintah.
sudo systemctl status mysql
Sempurna! Server MySQL berjalan seperti yang diharapkan!
Langkah 2: Buat Pengguna Baru untuk Replikasi di Master Node
Di bagian ini, kita akan membuat pengguna replikasi di node master. Untuk mencapai ini, masuk ke server MySQL seperti yang ditunjukkan.
sudo mysql -u root -p
Selanjutnya, lanjutkan dan jalankan kueri di bawah ini untuk membuat pengguna replika dan memberikan akses ke budak replikasi. Ingatlah untuk menggunakan alamat IP Anda.
mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';
Selanjutnya, jalankan perintah berikut.
mysql> SHOW MASTER STATUS\G
Outputnya harus serupa dengan apa yang Anda lihat di bawah.
Perhatikan baik-baik nilai mysql-bin.000002
dan ID Posisi 1643
. Nilai-nilai ini akan sangat penting saat menyiapkan server budak.
Langkah 3: Konfigurasikan Server Budak MySQL
Pergilah ke server slave dan seperti yang kita lakukan dengan Server master, buka file konfigurasi MySQL.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Sama seperti server master, lanjutkan dengan mengedit baris berikut.
bind-address = 10.128.0.29
Seperti sebelumnya, tentukan nilai untuk atribut server-id
di bagian [mysqld]
. Kali ini pilih nilai yang berbeda. Ayo gunakan 2
.
server-id =2
Sekali lagi, tempelkan baris di bawah ini di bagian paling akhir file konfigurasi.
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
Selanjutnya restart server MySQL pada node slave.
sudo systemctl restart mysql
Setelah selesai, simpan dan keluar dari editor teks
Selanjutnya, masuk ke shell MySQL seperti yang ditunjukkan.
sudo mysql -u root -p
Pada langkah ini, Anda perlu membuat beberapa konfigurasi yang memungkinkan server budak terhubung ke server master. Tapi pertama-tama, hentikan thread budak seperti yang ditunjukkan.
mysql> STOP SLAVE;
Untuk mengizinkan server budak mereplikasi server Master, jalankan perintah.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='Saturn@1234', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
Jika Anda cukup tertarik, Anda akan melihat bahwa kami telah menggunakan nilai mysql-bin.00002
dan ID posisi 1643
yang sebelumnya ditampilkan setelah membuat pengguna replikasi budak.
Selain itu, alamat IP server Master, pengguna replikasi, dan kata sandi telah digunakan.
Nanti, mulai thread yang sebelumnya Anda hentikan.
mysql> START SLAVE;
Langkah 4: Verifikasi Replikasi MySQL Master-Slave
Untuk memeriksa apakah pengaturannya benar-benar berfungsi seperti yang diharapkan, kita akan membuat database baru di master dan memeriksa apakah sudah direplikasi di server MySQL Slave.
Masuk ke MySQL di Server master.
sudo mysql -u root -p
Mari buat database pengujian. Dalam hal ini, kita akan membuat database bernama replication_db.
mysql> CREATE DATABASE replication_db;
Sekarang, masuk ke instance MySQL Anda di server budak.
sudo mysql -u root -p
Sekarang buat daftar database menggunakan kueri.
mysql> SHOW DATABASES;
Anda akan melihat database yang Anda buat di master telah direplikasi di slave. Luar biasa ! Replikasi MySQL Master-slave Anda berfungsi seperti yang diharapkan! Anda sekarang dapat yakin bahwa jika terjadi kegagalan, salinan file database akan direplikasi ke server budak.
Kesimpulan
Dalam panduan ini, Anda mempelajari cara menyiapkan penyiapan replikasi MySQL Master-slave di Ubuntu 18.04.