Untuk melakukan proses replikasi dibutuhkan:
1) Dua atau lebih komputer yang berfungsi sebagai server 1 dan server 2.
2) Adanya koneksi jaringan baik melalui LAN, WAN ataupun Wireless (setting IP Address tidak akan dibahas pada tutorial ini, pembaca dianggap sudah mengerti)
Menguji komunikasi Jaringan:
Ping ipaddress Komputer Master 1
Ping ipaddress Komputer Master 2
Menguji Client/Server Mysql:
Masuk ke terminal Komputer 1 dengan perintah berikut:
C:\Xampp\Mysql\bin > mysql –u root
Create user ‘guest’ @’ip_komputer2’ identified by ‘guest’;
Grant all on *.* to ‘guest’ @‘ip_komputer2’ identified by ‘guest’;
Flush privileges;
Sampai keluar: Query Ok, 0 rows affected (0.1 sec)
Keterangan:
Diantara tanda @ dan tulisan sesudahnya tidak boleh ada spasi.
Untuk melakukan pengujian client/server:
Masuk ke terminal di Komputer 2, kemudian login dengan mengetikkan perintah berikut:
C:\Xampp\Mysql\bin > mysql –h ip_komputer2 –u guest –p
Enter password:
Jika login dapat dilakukan dengan munculnya prompt Mysql, maka akses dari client ke server sudah dapat bekerja dengan baik. Sebaliknya, jika belum pastikan user root Mysql di Komputer Master sudah ditetapkan untuk dapat diakses dari luar host.
Tahap-I, Setting Pada Komputer Master 1:
1. Masuk ke terminal Komputer 1 dengan perintah berikut:
Mysql –u root
2. Create database mydatabase;
3. Use mydatabase;
4. Create table mytable (kode int(5) not null, nama varchar(15) not null, primary key(kode));
5. Untuk melihat struktur table, ketikkan perintah: desc mytable;
6. Untuk melakukan konfigurasi di Komputer Master 1.
1) Dua atau lebih komputer yang berfungsi sebagai server 1 dan server 2.
2) Adanya koneksi jaringan baik melalui LAN, WAN ataupun Wireless (setting IP Address tidak akan dibahas pada tutorial ini, pembaca dianggap sudah mengerti)
Menguji komunikasi Jaringan:
Ping ipaddress Komputer Master 1
Ping ipaddress Komputer Master 2
Menguji Client/Server Mysql:
Masuk ke terminal Komputer 1 dengan perintah berikut:
C:\Xampp\Mysql\bin > mysql –u root
Create user ‘guest’ @’ip_komputer2’ identified by ‘guest’;
Grant all on *.* to ‘guest’ @‘ip_komputer2’ identified by ‘guest’;
Flush privileges;
Sampai keluar: Query Ok, 0 rows affected (0.1 sec)
Keterangan:
Diantara tanda @ dan tulisan sesudahnya tidak boleh ada spasi.
Untuk melakukan pengujian client/server:
Masuk ke terminal di Komputer 2, kemudian login dengan mengetikkan perintah berikut:
C:\Xampp\Mysql\bin > mysql –h ip_komputer2 –u guest –p
Enter password:
Jika login dapat dilakukan dengan munculnya prompt Mysql, maka akses dari client ke server sudah dapat bekerja dengan baik. Sebaliknya, jika belum pastikan user root Mysql di Komputer Master sudah ditetapkan untuk dapat diakses dari luar host.
Tahap-I, Setting Pada Komputer Master 1:
1. Masuk ke terminal Komputer 1 dengan perintah berikut:
Mysql –u root
2. Create database mydatabase;
3. Use mydatabase;
4. Create table mytable (kode int(5) not null, nama varchar(15) not null, primary key(kode));
5. Untuk melihat struktur table, ketikkan perintah: desc mytable;
6. Untuk melakukan konfigurasi di Komputer Master 1.
Bukalah file [my.ini] (lokasinya: c:xampp/mysql/bin
Edit file [my.ini] dengan mengetikkan perintah berikut:
[mysqld] Note: jika sudah ada, jangan diketik lagi.
log-bin=”mysql-log”
binlog-do-db= mydatabase
auto-increment-offset=1
server-id=1
7. Setelah itu restrart MySQL (Bisa dilakukan secara manual melalui xampp control panel atau dengan mengetikkan perintah berikut:
C:\xampp\mysql_start.bat dan C:\xampp\mysql_stop.bat (jika yang menggunakan server xampp)
8. Membuat user replikasi di server1 dengan langkah berikut:
(Perlu diperhatikan, pembuatan user ditahap sebelumnya hanya sekedar untuk menguji komunikasi client/server Mysql. Bagaimanapun untuk user pendistribusian data dibuat tersendiri dengan hak yang sangat restriktif).
Masuk ke terminal mesin Master dengan perintah berikut:
C:\Xampp\Mysql\bin > mysql –u root
Memudian, ketikkan perintah pembuatan user sebagai berikut:
Create user ‘user2’@’%’ identified by ‘user2’;
Grant replication slave on *.* to ‘user2’ @’192.168.1.2’ identified by ‘user2’;
Flush privileges;
9. Jalankan Perintah berikut:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='ip_komputer2' , MASTER_USER='user2' , MASTER_PASSWORD='user2', MASTER_LOG_FILE='mysql-bin.009', MASTER_LOG_POS=130;
START SLAVE;
10. Langkah terakhir adalah keluar dari console dengan perintah :
quit; (Dalam kondisi ini, mesin master tidak bias diakses lagi dari mesin slave)
dan exit (keluar dari command prompt)
Kalau databasenya tidak muncul, restart dulu mysql kemudian masuk lagi sebagai root.
Tahap-II, Konfigurasi dan Aktifasi Komputer Master 2:
1. Masuk ke Prompt Mysql dan buatlah database yang sama dengan milik Komputer 1.
C:\Xampp\Mysql\bin > mysql -u root -p{ password yang sesuai dengan user, jika ada };
Create database mydatabase;
Use mydatabase;
Create table mytable (kode int(5) not null, nama varchar(15) not null, primary key(kode));
Untuk melihat struktur table, ketikkan perintah: desc mytable;
quit;
2. Untuk melakukan konfigurasi di server 2, Lakukan langkah-langkah berikut:
Buka file [my.ini ]
Edit file [my.ini] dengan mengetikkan perintah berikut:
server-id = 2
replicate-do-db= mydatabase
auto-increment-offset=2
3. Setelah itu restart MySQL (Bisa dilakukan secara manual melalui xampp control panel)
4. Kemudian masuk lagi ke console dengan perintah :
C:\Xampp\Mysql\bin > mysql -u root -p
5. Terlebih dahulu matikan slave dengan perintah: STOP SLAVE;
6. Jalankan perintah berikut untuk menjadikan komputer 2 sebagai master dari komputer 1:
(Note:Nilai-nilai atribut berikut harus disesuaikan dengan informasi status master dan konfigurasi utama)
CHANGE MASTER TO MASTER_HOST='ip_komputer1' , MASTER_USER='user1' , MASTER_PASSWORD='user1', MASTER_LOG_FILE='mysql-bin.009', MASTER_LOG_POS=130;
START SLAVE;
Nilai master_log_file dan master_log_pos harus merujuk kepada informasi status master terbaru.
7. Untuk mengetahui bahwa proses replikasi sudah berjalan dengan baik, gunakan perintah berikut:
SHOW SLAVE STATUS\G; (Disarankan pakai huruf besar semua)
Periksa apakah “Slave_IO_Running: Yes “ dan “Slave_SQL_Running:Yes”
8. Selanjutnya ketikkan perintah untuk mengetahui bahwa proses replikasi telah berhasil dengan baik dimana komputer 2 siap mengejar operasi penulisan pada server master komputer 1:
SHOW PROCESSLIST\G;
9. Langkah terakhir adalah keluar dari console dengan perintah :
quit; atau exit
Selesai.
Edit file [my.ini] dengan mengetikkan perintah berikut:
[mysqld] Note: jika sudah ada, jangan diketik lagi.
log-bin=”mysql-log”
binlog-do-db= mydatabase
auto-increment-offset=1
server-id=1
7. Setelah itu restrart MySQL (Bisa dilakukan secara manual melalui xampp control panel atau dengan mengetikkan perintah berikut:
C:\xampp\mysql_start.bat dan C:\xampp\mysql_stop.bat (jika yang menggunakan server xampp)
8. Membuat user replikasi di server1 dengan langkah berikut:
(Perlu diperhatikan, pembuatan user ditahap sebelumnya hanya sekedar untuk menguji komunikasi client/server Mysql. Bagaimanapun untuk user pendistribusian data dibuat tersendiri dengan hak yang sangat restriktif).
Masuk ke terminal mesin Master dengan perintah berikut:
C:\Xampp\Mysql\bin > mysql –u root
Memudian, ketikkan perintah pembuatan user sebagai berikut:
Create user ‘user2’@’%’ identified by ‘user2’;
Grant replication slave on *.* to ‘user2’ @’192.168.1.2’ identified by ‘user2’;
Flush privileges;
9. Jalankan Perintah berikut:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='ip_komputer2' , MASTER_USER='user2' , MASTER_PASSWORD='user2', MASTER_LOG_FILE='mysql-bin.009', MASTER_LOG_POS=130;
START SLAVE;
10. Langkah terakhir adalah keluar dari console dengan perintah :
quit; (Dalam kondisi ini, mesin master tidak bias diakses lagi dari mesin slave)
dan exit (keluar dari command prompt)
Kalau databasenya tidak muncul, restart dulu mysql kemudian masuk lagi sebagai root.
Tahap-II, Konfigurasi dan Aktifasi Komputer Master 2:
1. Masuk ke Prompt Mysql dan buatlah database yang sama dengan milik Komputer 1.
C:\Xampp\Mysql\bin > mysql -u root -p{ password yang sesuai dengan user, jika ada };
Create database mydatabase;
Use mydatabase;
Create table mytable (kode int(5) not null, nama varchar(15) not null, primary key(kode));
Untuk melihat struktur table, ketikkan perintah: desc mytable;
quit;
2. Untuk melakukan konfigurasi di server 2, Lakukan langkah-langkah berikut:
Buka file [my.ini ]
Edit file [my.ini] dengan mengetikkan perintah berikut:
server-id = 2
replicate-do-db= mydatabase
auto-increment-offset=2
3. Setelah itu restart MySQL (Bisa dilakukan secara manual melalui xampp control panel)
4. Kemudian masuk lagi ke console dengan perintah :
C:\Xampp\Mysql\bin > mysql -u root -p
5. Terlebih dahulu matikan slave dengan perintah: STOP SLAVE;
6. Jalankan perintah berikut untuk menjadikan komputer 2 sebagai master dari komputer 1:
(Note:Nilai-nilai atribut berikut harus disesuaikan dengan informasi status master dan konfigurasi utama)
CHANGE MASTER TO MASTER_HOST='ip_komputer1' , MASTER_USER='user1' , MASTER_PASSWORD='user1', MASTER_LOG_FILE='mysql-bin.009', MASTER_LOG_POS=130;
START SLAVE;
Nilai master_log_file dan master_log_pos harus merujuk kepada informasi status master terbaru.
7. Untuk mengetahui bahwa proses replikasi sudah berjalan dengan baik, gunakan perintah berikut:
SHOW SLAVE STATUS\G; (Disarankan pakai huruf besar semua)
Periksa apakah “Slave_IO_Running: Yes “ dan “Slave_SQL_Running:Yes”
8. Selanjutnya ketikkan perintah untuk mengetahui bahwa proses replikasi telah berhasil dengan baik dimana komputer 2 siap mengejar operasi penulisan pada server master komputer 1:
SHOW PROCESSLIST\G;
9. Langkah terakhir adalah keluar dari console dengan perintah :
quit; atau exit
Selesai.
Test dengan cara masukkan data baru atau edit data lama pada master.Dan lihat hasilnya pada slave.Secara otomatis slave tersinkronisasi datanya dari master (kedua data sama).
Test dengan insert data:
Insert into mytable values(01,’apasaja’);
Catatan Penting:
Melihat Daftar User MySQL
Untuk melihat table "user" yang ada di database "mysql", ketikkan perintah berikut:
SELECT * FROM mysql.user;
Jika dengan perintah di atas terlalu panjang, maka bisa mencoba perintah di bawah ini :
SELECT user, password, host FROM mysql.user;
untuk melihat daftar user, password (yang terenkripsi) dan sumber host yang diperbolehkan akses ke server MySQL
Menghapus User:
Untuk menghapus user, ketikkan perintah berikut:
flush privileges;
drop user 'user'@'localhost';
Jika perintah diatas tidak berhasil, maka lakukan langkah berikut:
select user,host
from mysql.user
where user = '<your-user>';
Jika user-nya ada, maka lakukan langkah berikut untuk menghapus user secara manual:
delete from mysql.user
where user='<your-user>'
and host = 'localhost';
atau:
flush privileges;
Keterangan: Jangan pernah menghapus ‘root’ user
Test dengan insert data:
Insert into mytable values(01,’apasaja’);
Catatan Penting:
Melihat Daftar User MySQL
Untuk melihat table "user" yang ada di database "mysql", ketikkan perintah berikut:
SELECT * FROM mysql.user;
Jika dengan perintah di atas terlalu panjang, maka bisa mencoba perintah di bawah ini :
SELECT user, password, host FROM mysql.user;
untuk melihat daftar user, password (yang terenkripsi) dan sumber host yang diperbolehkan akses ke server MySQL
Menghapus User:
Untuk menghapus user, ketikkan perintah berikut:
flush privileges;
drop user 'user'@'localhost';
Jika perintah diatas tidak berhasil, maka lakukan langkah berikut:
select user,host
from mysql.user
where user = '<your-user>';
Jika user-nya ada, maka lakukan langkah berikut untuk menghapus user secara manual:
delete from mysql.user
where user='<your-user>'
and host = 'localhost';
atau:
flush privileges;
Keterangan: Jangan pernah menghapus ‘root’ user