Tutorial konfigurasi Master pada Replikasi Database MySQL dengan hubungan Master Slave di Ubuntu Server


Kali ini saya akan membahas bagaimana melakukan konfigurasi replikasi 2 database MySQL Server pada peran Server Master (sebagai server yang akan direplikasi di Slave server MySQL). Sebagai informasi untuk pembaca, saya menggunakan Sistem Operasi Ubuntu Server 14.04 LTS dan aplikasi MySQL Server versi 5.6 di kedua Server (Master dan Slave). Sedangkan topologi Master Slave yang akan saya bangun diperlihatkan pada gambar di bawah:


Pertama salin terlebih dahulu file my.cnf ke my.cnf.defaul sebelum saya melakukan perubahan pada file original menggunakan perintah:

 sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.default

Fungsi file my.cnf.default itu adalah agar saya sewaktu-waktu dapat menggunakannya sebagai backup apabila saya salah melakukan konfigurasi sehingga MySQL Server tidak berjalan sebagaimana mestinya dan dapat konfigurasi yang terlanjur saya modifikasi dapat saya kembalikan seperti semula ketika terjadi kerusakan.

Baru setelah itu saya membuka konfigurasi my.cnf dengan perintah di bawah:

 sudo vim /etc/mysql/my.cnf

kemudian cari bagian:

 bind-address = 127.0.0.1

ubah menjadi seperti di bawah:

 #bind-address = 127.0.0.1

fungsinya adalah agar MySQL server dapat dibuka dari alamat 192.168.56.25, kemudian cari lagi bagian:

 #server-id = 1

hilangkan tanda pagar sehingga menjadi seperti di bawah ini:

 server-id = 1

Fungsinya adalah sebagai identitas bahwa database server yang digunakan berperan sebagai Master dimana angka 1 adalah identitas tertinggi.

Cari juga bagian seperti di bawah, kemudian hilangkan tanda pagar di depannya:

 #log_bin = /var/log/mysql/mysql-bin.log
 max_binlog_size = 100M
 #binlog_do_db = include_database_name

sehingga menjadi:

 log_bin = /var/log/mysql/mysql-bin.log
 max_binlog_size = 1024M
 binlog_do_db = belajar

perhatikan pada bagian binlog_do_db disitu saya menulis belajar . Belajar adalah database yang akan saya replikasi ke Slave database. Setelah selesai melakukan perubahan di atas simpan dan restart MySQL Server dengan perintah:

 sudo service mysql restart

setelah itu saya masuk ke dalam shell mysql dengan perintah:

 mysql -u root -p

kemudian saya akan menjalankan perintah di bawah ini:

 GRANT REPLICATION SLAVE ON *.* TO 'user_database'@'%' IDENTIFIED BY 'password_database';

perintah di atas memberikan hak akses kepada Slave server karena saya menggunakan user root dan password root maka perintahnya menjadi seperti dibawah ini:

 GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY 'root';

Setelah itu lakukan perintah FLUSH seperti di bawah:

 FLUSH PRIVILEGES;

Setelah itu, saya akan menggunakan database belajar dengan perintah:

 USE belajar;

setelah itu akan saya kunci agar tidak bisa ditulisi atau dimodifikasi sementara dengan perintah:

 FLUSH TABLES WITH READ LOCK;

kemudian coba jalankan perintah:

 SHOW MASTER ;

sehingga hasilnya terlihat mirip seperti di bawah ini:


perhatikan bagian yang saya lingkari kuning, mysql-bin.00003 adalah file yang mencatat segala perubahan pada database belajar oleh Master server. File tersebut nantinya akan dibaca oleh Slave server dan yang akan diimplementasikan di database belajar miliknya sehingga sama persis hasilnya dengan database belajar milik Master Server. 

Sedangkan catat juga isi pada kolom Position yang saya lingkar kuning juga. Angka 120 itu adalah posisi angka dimana perubahan telah dilakukan di Master Server dan Slave server akan mulai mengimplementasikannya mulai dari angka 120 tersebut. Bisa jadi nama file dan posisi di server Master anda berbeda dengan milik saya, tetapi silakan dicatat ya isi kolom File dan isi Kolom Position milik anda, karena nanti akan dijalankan sebagai variabel di Slave server.

Setelah itu jangan keluar dari shell mysql pada Master Server tetapi silakan login ke dalam server kemudian export database belajar dengan perintah berikut:

 mysqldump -u root -p --opt belajar > belajar.sql

maka di dalam home anda akan mendapatkan file export belajar.sql. Setelah itu silakan kopi file belajar.sql tersebut ke server Slave dengan perintah:

 scp belajar.sql user@192.168.56.25:/home/user/belajar.sql

setelah itu kembali ke shell mysql sebelumnya lalu jalankan perintah di bawah ini untuk membuka kunci di database belajar agar dapat dimodifikasi:

 UNLOCK TABLES;

setelah itu keluar dari shell mysql dengan perintah:

 QUIT;

Yak, konfigurasi Master Server MySQL telah selesai, maka di tutorial selanjutnya saya akan membahas konfigurasi Slave Server.

Comments