TI

Pertanyaan

Bagaimana cara membuat Master Server?

1 Jawaban

  • Edit file konfigurasi mysql
    $sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf atau untuk versi yang lama
    $sudo nano /etc/mysql/my.cnf
    Edit/tambahkan baris berikut di file konfirgurasi
    bind-address = 192.168.1.1 atau * (address server master)
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = database1 (database yg mau direplikasi)

    Kalau mau lebih dari satu database tinggal tambahkan baris lagi
    binlog_do_db = database2
    binlog_do_db = database3 dst
    binlog_ignore_db = database4 (database yg tdk ikut direplikasi)
    Refresh database mysql $sudo service mysql restart
    Login ke Mysql
    #mysql -u root -p
    mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%'
    IDENTIFIED BY 'password'; (buat user replikasi)
    mysql>FLUSH PRIVILEGES;
    mysql>USE database1;
    mysql>FLUSH TABLES WITH READ LOCK;
    mysql>SHOW MASTER STATUS;
    Akan keluar tampilan seperti berikut
    mysql> SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 | 107 | database1 | |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)

    Catat File dan Position yang akan digunakan di SERVER SLAVE
    (contoh disini mysql-bin.000001 dan 107)

    Backup database yang akan direplikasi untuk diinstal di SERVER SLAVE
    #mysqldump -u root -p --opt database1 > database1.sql

    Unlock Tabel
    mysql>UNLOCK TABLES;
    mysql>QUIT;
    Langkah di SERVER MASTER sudah selesai, lanjut ke SERVER SLAVE


    SERVER SLAVE

    Buat database yang akan direplikasi di MySQL
    #mysql -uroot -p
    mysql>CREATE DATABASE database1;
    Import struktur database yang sudah dilakukan di server master sebelumnya
    #mysql -u root -p database1 < /path/to/database1.sql
    Edit file konfigurasi MySQL
    $sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    Edit/tambah file konfigurasi mysql
    server-id = 2 (nomor harus beda dari Server Master)
    relay-log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = database1 (list database yg direplikasi)
    Restart MySQL
    $sudo service mysql restart
    Buka MySQL
    #mysql -u root -p
    mysql>CHANGE MASTER TO MASTER_HOST='12.34.56.789',
    MASTER_USER='slave_user',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS= 107; (master log & master pos disesuaikan)

    Start Slave
    mysql>START SLAVE;
    mysql>SHOW SLAVE STATUS\G
    Jika ada masalah saat koneksi bisa ditambah perintah berikut
    mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
    mysql>SLAVE START;

Pertanyaan Lainnya