Android

Cara mengkonfigurasi master mysql

Lab 9.6 Konfigurasi Database MariaDB Replication di Centos 7

Lab 9.6 Konfigurasi Database MariaDB Replication di Centos 7

Daftar Isi:

Anonim

Replikasi MySQL adalah proses yang memungkinkan Anda untuk secara otomatis menyalin data dari satu server basis data ke satu atau lebih server.

MySQL mendukung sejumlah topologi replikasi dengan topologi Master / Slave menjadi salah satu topologi paling terkenal di mana satu server database bertindak sebagai master, sementara satu atau lebih server bertindak sebagai budak. Secara default, replikasi tidak sinkron di mana master mengirimkan peristiwa yang menjelaskan modifikasi basis data ke log binernya dan budak meminta acara ketika sudah siap.

Dalam tutorial ini, kami akan menjelaskan cara mengatur replikasi MySQL Master / Slave dengan satu master dan satu server slave pada CentOS 7. Langkah-langkah yang sama berlaku untuk MariaDB.

Jenis topologi replikasi ini paling cocok untuk menyebarkan replika baca untuk penskalaan baca, cadangan basis data langsung untuk pemulihan bencana dan untuk pekerjaan analitik.

Prasyarat

Dalam contoh ini, kami mengasumsikan bahwa Anda memiliki dua server yang menjalankan CentOS 7, yang dapat berkomunikasi satu sama lain melalui jaringan pribadi. Jika penyedia hosting Anda tidak memberikan alamat IP pribadi, Anda dapat menggunakan alamat IP publik dan mengkonfigurasi firewall Anda untuk mengizinkan lalu lintas di port 3306 hanya dari sumber tepercaya.

Server dalam contoh ini memiliki IP berikut:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

Instal MySQL

Default The CentOS 7 repositori tidak termasuk paket MySQL jadi kami akan menginstal MySQL dari Yum Repository resmi mereka. Untuk menghindari masalah, kami akan menginstal MySQL versi 5.7 yang sama di kedua server.

Instal MySQL di server Master dan Slave:

sudo yum localinstall sudo yum install mysql-community-server

Setelah instalasi selesai, mulai layanan MySQL dan aktifkan untuk memulai saat boot dengan:

sudo systemctl enable mysqld sudo systemctl start mysqld

Ketika server MySQL dimulai untuk pertama kalinya, kata sandi sementara dihasilkan untuk pengguna root MySQL. Untuk menemukan kata sandi, gunakan perintah grep berikut:

sudo grep 'temporary password' /var/log/mysqld.log

Jalankan perintah mysql_secure_installation untuk mengatur kata sandi root baru Anda dan meningkatkan keamanan instance MySQL:

mysql_secure_installation

Masukkan kata sandi root sementara dan jawab Y (ya) untuk semua pertanyaan.

Kata sandi baru harus sepanjang minimal 8 karakter dan mengandung setidaknya satu huruf besar, satu huruf kecil, satu angka, dan satu karakter khusus.

Konfigurasikan Master Server

Pertama, kita akan mengkonfigurasi server MySQL master dan membuat perubahan berikut:

  • Atur server MySQL untuk mendengarkan IP pribadi. Atur ID server yang unik. Aktifkan pencatatan biner.

Untuk melakukannya buka file konfigurasi MySQL dan tambahkan baris berikut di bagian:

sudo nano /etc/my.cnf master: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

Setelah selesai, mulai ulang layanan MySQL agar perubahan diterapkan

sudo systemctl restart mysqld

Langkah selanjutnya adalah membuat pengguna replikasi baru. Masuk ke server MySQL sebagai pengguna root:

mysql -uroot -p

Dari dalam prompt MySQL, jalankan query SQL berikut yang akan membuat pengguna replica dan memberikan hak istimewa REPLICATION SLAVE kepada pengguna:

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Pastikan Anda mengubah IP dengan alamat IP slave Anda. Anda dapat memberi nama pengguna seperti yang Anda inginkan.

Saat masih di dalam prompt MySQL, jalankan perintah berikut yang akan mencetak nama file dan posisi biner.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Perhatikan nama file, 'mysql-bin.000001' dan Posisi '1427'. Anda akan membutuhkan nilai-nilai ini ketika mengkonfigurasi server slave. Nilai-nilai ini mungkin akan berbeda di server Anda.

Konfigurasikan Server Slave

Seperti untuk server master di atas, kami akan membuat perubahan berikut ke server slave:

  • Atur server MySQL untuk mendengarkan pada IPSet pribadi, sebuah server unik IDEnable log biner

Buka file konfigurasi MySQL dan edit baris berikut:

sudo nano /etc/my.cnf budak: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

Mulai ulang layanan MySQL:

sudo systemctl restart mysqld

Langkah selanjutnya adalah mengkonfigurasi parameter yang akan digunakan server slave untuk terhubung ke server master. Login ke shell MySQL:

mysql -uroot -p

Pertama, hentikan utas budak:

STOP SLAVE;

Jalankan query berikut yang akan mengatur slave untuk mereplikasi master:

CHANGE MASTER TO MASTER_HOST='192.168.121.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

Pastikan Anda menggunakan alamat IP, nama pengguna, dan kata sandi yang benar. Nama dan posisi file log harus sama dengan nilai yang Anda peroleh dari server master.

Setelah selesai, mulailah benang slave.

START SLAVE;

Uji Konfigurasi

Pada titik ini, Anda harus memiliki setup replikasi Master / Slave yang berfungsi.

Untuk memverifikasi bahwa semuanya berfungsi seperti yang diharapkan, kami akan membuat database baru di server master:

mysql -uroot -p

CREATE DATABASE replicatest;

Login ke shell MySQL slave:

mysql -uroot -p

Jalankan perintah berikut untuk mendaftar semua basis data:

SHOW DATABASES;

Anda akan melihat bahwa database yang Anda buat di server master direplikasi pada slave:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Kesimpulan

Dalam tutorial ini, kami telah menunjukkan Anda membuat replikasi MySQL Master / Slave di CentOS 7.

Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.

centos mysql mariadb