Cara Mengatur Replikasi Master-Slave MySQL di Ubuntu 18.04

Cara Mengatur Replikasi Master-Slave MySQL di Ubuntu 18.04

Mysql Replikasi Master-Slave adalah prosedur yang memungkinkan file database direplikasi atau disalin di satu atau lebih node dalam jaringan. Pengaturan ini memberikan redundansi dan toleransi kesalahan sehingga jika terjadi kegagalan dalam Master Node, database masih dapat dipulihkan di Node Slave. Ini memberi pengguna ketenangan pikiran bahwa semua tidak akan hilang dalam kemungkinan apa pun sebagai replika database masih dapat diambil dari server yang berbeda.

Dalam panduan ini, Anda akan belajar cara melakukan a Mysql database Master-Slave replikasi pada Ubuntu 18.04 sistem.

Prasyarat

Dalam pengaturan, kita akan memiliki dua server berlari 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 mengkonfigurasi Master-Slave pengaturan replikasi di Ubuntu.

Langkah 1: Instal MySQL pada Node Master dan Slave

Ubuntu Repositori berisi versi 5.7 dari Mysql. Untuk memanfaatkan fitur baru dan menghindari masalah potensial, Anda harus menginstal versi MySQL terbaru. Tapi pertama -tama, mari kita perbarui dua node menggunakan perintah APT berikut.

$ sudo pembaruan apt 
Perbarui Perangkat Lunak Ubuntu

Untuk memasang Mysql Pada kedua node, jalankan perintah.

$ sudo apt instal mysql-server mysql-client 
Instal server mysql di ubuntu

Selanjutnya, buka mysql file konfigurasi.

$ sudo vim/etc/mysql/mysql.conf.d/mysqld.CNF 

Di Master Node, 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 Master Node.

Bind-address = 10.128.0.28 
Atur alamat ip master mysql

Selanjutnya, tentukan nilai untuk server-id atribut di [mysqld] bagian. Nomor yang Anda pilih tidak boleh cocok dengan nomor ID server lainnya. Mari kita tetapkan nilainya 1.

server-id = 1 
Atur ID Server MySQL di Master

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.catatan.indeks relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.indeks 

Keluar dari file konfigurasi dan restart layanan MySQL agar perubahan mulai berlaku pada master node.

$ sudo systemctl restart mysql 

Untuk memverifikasi bahwa server MySQL berjalan seperti yang diharapkan, keluarkan perintah.

$ sudo Systemctl Status mysql 
Mulai ulang dan periksa status mysql

Sempurna! Server mysql berjalan seperti yang diharapkan!

Langkah 2: Buat pengguna baru untuk replikasi di master node

Di bagian ini, kami akan membuat pengguna replikasi di Master Node. Untuk mencapai hal 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> Buat pengguna 'replication_user'@'10.128.0.29'Diidentifikasi oleh' replica_password '; mysql> Hibah budak di *.* Ke 'replication_user'@'10.128.0.29'; 
Buat Pengguna Replikasi MySQL

Selanjutnya, jalankan perintah berikut.

mysql> Tunjukkan status master \ g 

Output harus mirip dengan apa yang dapat Anda lihat di bawah.

Periksa status master mysql

Bersemangatlah dan perhatikan mysql-bin.000002 Nilai dan ID Posisi 1643. Nilai -nilai ini akan sangat penting saat menyiapkan server budak.

Langkah 3: Mengkonfigurasi server slave 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 
Bind MySQL IP Address di Slave

Seperti sebelumnya, tentukan nilai untuk server-id atribut di [mysqld] bagian. Kali ini pilih nilai yang berbeda. Ayo pergi dengan 2.

server-id = 2 
Atur ID Server MySQL di Slave

Sekali lagi, tempel baris di bawah ini di ujung file konfigurasi.

log_bin =/var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.catatan.indeks relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.indeks 

Selanjutnya restart server mysql di node budak.

$ 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 akan memungkinkan server budak untuk terhubung ke Server Master. Tapi pertama -tama, hentikan utas budak seperti yang ditunjukkan.

mysql> Berhenti budak; 

Untuk memungkinkan server budak untuk mereplikasi Server Master, Jalankan perintah.

mysql> Ubah master menjadi master_host = '10.128.0.28 ', master_user =' replication_user ', master_password =' ​​[email dilindungi] ', master_log_file =' mysql-bin.000002 ', master_log_pos = 1643; 
Izinkan replikasi mysql di server budak

Jika Anda cukup tertarik, Anda akan mengamati bahwa kami telah menggunakan mysql-bin.00002 ID Nilai dan Posisi 1643 sebelumnya ditampilkan setelah membuat pengguna replikasi budak.

Selain itu, alamat IP server master, pengguna replikasi dan kata sandi telah digunakan.

Kemudian, mulailah utas yang sebelumnya Anda berhenti.

mysql> Mulai budak; 

Langkah 4: Verifikasi replikasi master-slave mysql

Untuk memeriksa apakah pengaturannya memang berfungsi seperti yang diharapkan, kami akan membuat database baru di master dan memeriksa untuk melihat apakah telah direplikasi di server slave mysql.

Masuk ke mysql di Server Master.

$ sudo mysql -u root -p 

Mari Buat Database Tes. Dalam hal ini, kami akan membuat database yang disebut replikasi_db.

mysql> Buat Database Replication_DB; 

Sekarang, masuk ke instance mySQL Anda di server budak.

$ sudo mysql -u root -p 

Sekarang daftar database menggunakan kueri.

mysql> Tampilkan basis data; 
Verifikasi replikasi master-slave mysql

Anda akan melihat database yang Anda buat di menguasai telah direplikasi budak. Luar biasa ! Replikasi Master-Slave MySQL 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 belajar cara mengatur a Mysql Master-Slave pengaturan replikasi di Ubuntu 18.04.