MySQL replikasi master-slave adalah prosedur yang memungkinkan file database direplikasi atau disalin di satu atau lebih node dalam jaringan. Penyiapan ini menyediakan redundansi dan toleransi kesalahan sedemikian rupa sehingga jika terjadi kegagalan di node Master , database masih dapat dipulihkan di simpul Slave . Hal ini memberikan ketenangan pikiran kepada pengguna bahwa semua tidak akan hilang dalam segala kemungkinan karena replika database masih dapat diambil dari server yang berbeda.
Dalam panduan ini, Anda akan mempelajari cara melakukan MySQL basis data Tuan-budak replikasi pada Ubuntu 18.04 sistem.
Prasyarat
Dalam pengaturan, 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 Master-slave penyiapan replikasi di Ubuntu .
Langkah 1:Instal MySQL pada Master dan Slave Nodes
Ubuntu repositori berisi versi 5.7 dari MySQL . Untuk memanfaatkan fitur baru dan menghindari potensi masalah, Anda harus menginstal versi MySQL terbaru. Tapi pertama-tama, mari kita 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 mysql file konfigurasi.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Di Nodus master , gulir dan temukan bind-address
atribut seperti yang ditunjukkan di bawah ini.
bind-address =127.0.0.1
Ubah alamat loopback agar sesuai dengan alamat IP dari Master node .
bind-address =10.128.0.28
Selanjutnya, tentukan nilai untuk server-id
atribut di [mysqld]
bagian. Nomor yang Anda pilih tidak boleh cocok dengan nomor server-id lainnya. Mari kita tetapkan nilai 1
.
server-id =1
Di 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 mirip dengan apa yang Anda lihat di bawah.
Perhatikan dan perhatikan mysql-bin.000002
nilai dan ID Posisi 1643
. Nilai-nilai ini akan sangat penting saat menyiapkan server budak .
Langkah 3:Konfigurasi Server Budak MySQL
Pergilah ke server budak dan seperti yang kami lakukan dengan server Master , buka file konfigurasi MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Sama seperti server master , lanjutkan untuk mengedit baris berikut.
bind-address = 10.128.0.29
Seperti sebelumnya, tentukan nilai untuk server-id
atribut di [mysqld]
bagian. Kali ini pilih nilai yang berbeda. Ayo gunakan 2
.
server-id =2
Sekali lagi, tempel 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 untuk terhubung ke server master . Tapi pertama-tama, hentikan utas budak seperti yang ditunjukkan.
mysql> STOP SLAVE;
Untuk mengizinkan server budak untuk mereplikasi server Master , jalankan perintah.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
Jika Anda cukup tertarik, Anda akan melihat bahwa kami telah menggunakan mysql-bin.00002
nilai dan ID posisi 1643
sebelumnya ditampilkan setelah membuat pengguna replikasi budak.
Selain itu, alamat IP server Master, pengguna replikasi, dan kata sandi telah digunakan.
Kemudian, mulai utas yang sebelumnya Anda hentikan.
mysql> START SLAVE;
Langkah 4:Verifikasi Replikasi Master-Slave MySQL
Untuk memeriksa apakah setup benar-benar bekerja seperti yang diharapkan, kita akan membuat database baru di master dan memeriksa apakah database tersebut telah direplikasi di server MySQL Slave.
Masuk ke MySQL di server Master .
$ sudo mysql -u root -p
Mari kita 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 pada budak . Luar biasa ! Replikasi Master-slave MySQL Anda berfungsi seperti yang diharapkan! Sekarang Anda dapat yakin bahwa jika terjadi kegagalan, salinan file database akan direplikasi ke server slave.
Kesimpulan
Dalam panduan ini, Anda mempelajari cara menyiapkan MySQL Master-slave pengaturan replikasi di Ubuntu 18.04 .