Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Setup Replikasi MySQL di RHEL, Rocky dan AlmaLinux

Replikasi data adalah proses menyalin data Anda di beberapa server untuk meningkatkan ketersediaan data dan meningkatkan keandalan dan kinerja aplikasi. Di MySQL replikasi, data disalin dari database dari server master ke node lain secara real-time untuk memastikan konsistensi data dan juga untuk menyediakan cadangan dan redundansi.

Dalam panduan ini, kami mendemonstrasikan bagaimana Anda dapat menyiapkan MySQL (Tuan-Budak ) replikasi dalam distribusi berbasis RHEL seperti CentOS , Fedora , Linux Rocky, dan AlmaLinux .

Pengaturan Replikasi MySQL

Jadi, inilah MySQL our kami penyiapan lab replikasi.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Mari kita mulai…

Langkah 1:Instal MySQL di Server Master dan Slave

Kami akan memulai dengan menginstal MySQL database di kedua master dan budak server.

$ sudo dnf install @mysql

Setelah penginstalan selesai, pastikan untuk memulai server database.

$ sudo systemctl start mysqld

Kemudian aktifkan untuk memulai startup sistem atau saat reboot.

$ sudo systemctl enable mysqld

Setelah itu, konfirmasikan bahwa MySQL server database berjalan seperti yang ditunjukkan:

$ sudo systemctl status mysqld

Langkah 2:Amankan MySQL di Server Master dan Slave

Langkah selanjutnya adalah mengamankan MySQL database di kedua master dan budak server. Ini karena pengaturan default tidak aman dan menghadirkan beberapa celah yang dapat dengan mudah dieksploitasi oleh peretas.

Jadi, untuk mengeraskan MySQL, jalankan perintah:

$ sudo mysql_secure_installation

Pertama, Anda akan diminta untuk mengatur MySQL kata sandi akar. Pastikan untuk memberikan kata sandi root yang kuat, sebaiknya dengan lebih dari 8 karakter yang merupakan campuran karakter huruf besar, huruf kecil, khusus, dan numerik.

Untuk petunjuk selanjutnya, ketik 'Y' untuk mengubah server database ke pengaturan yang disarankan.

Setelah Anda selesai menginstal dan mengeraskan MySQL pada node master dan slave, selanjutnya adalah mengkonfigurasi node master.

Langkah 3:Konfigurasi Node Master (Server)

Langkah selanjutnya adalah mengonfigurasi Master simpul dan berikan budak akses simpul ke sana. Pertama, kita perlu mengedit mysql-server.cnf file konfigurasi.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Tambahkan baris berikut di bawah [mysqld] bagian.

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

Setelah selesai, simpan perubahan dan keluar. Kemudian mulai ulang MySQL server.

$ sudo sysemctl restart mysqld

Selanjutnya, masuk ke MySQL cangkang.

$ sudo mysql -u root -p

Jalankan perintah berikut untuk membuat pengguna database yang akan digunakan untuk mengikat master dan slave untuk replikasi.

mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

Terapkan perubahan dan keluar dari MySQL server.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Verifikasi status master.

mysql> SHOW MASTER STATUS\G

Perhatikan Nama File dan Posisinya. Anda akan membutuhkan ini nanti saat menyiapkan slave untuk replikasi. Dalam kasus kami, kami memiliki nama file sebagai mysql-bin.000001 dan Posisi 1232 .

Langkah 4:Konfigurasi Budak Node (Server)

Sekarang, kembali ke node Slave. Sekali lagi, edit mysql-server.cnf file konfigurasi.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Seperti sebelumnya, rekatkan baris ini di bawah [mysqld] bagian. Ubah alamat IP agar sesuai dengan IP budak. Juga, tetapkan server-id different yang berbeda . Di sini kami telah menetapkan nilai 2 .

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

Simpan perubahan dan keluar dari file. Kemudian restart server database.

$ sudo systemctl restart mysqld

Untuk mengonfigurasi Budak node untuk mereplikasi dari node Master, login ke server MySQL Slave.

$ sudo mysql -u root -p

Pertama dan terpenting, hentikan utas replikasi:

mysql> STOP SLAVE;

Kemudian jalankan perintah berikut untuk mengkonfigurasi node budak untuk mereplikasi database dari master.

mysql> CHANGE MASTER TO
     MASTER_HOST='10.128.0.14' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='[email protected]' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

Perhatikan bahwa MASTER_LOG_FILE dan MASTER_LOG_POS bendera sesuai dengan file dan Posisi nilai dari Master simpul di akhir Langkah 1.

MASTER_HOST , MASTER_USER, dan MASTER_PASSWORD sesuai dengan alamat IP Master, pengguna replikasi, dan sandi pengguna replikasi.

Kemudian mulai utas replikasi budak:

mysql> START SLAVE;

Langkah 4:Menguji Replikasi Master-Slave MySQL

Sekarang, untuk menguji apakah replikasi antara node master dan slave berfungsi, masuk ke server database MySQL pada node master:

$ sudo mysql -u root -p

Buat database pengujian. Di sini, basis data pengujian kami disebut replication_db .

mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;

Sekarang, pergilah ke node slave, masuk ke server MySQL dan konfirmasikan bahwa replication_db basis data hadir. Dari output di bawah ini, kita dapat melihat bahwa database hadir. Ini adalah konfirmasi bahwa replikasi telah terjadi dari Master ke node slave.

mysql> SHOW DATABASES;

Dan hanya itu, kami telah berhasil menunjukkan bagaimana Anda dapat menyiapkan MySQL model replikasi master-slave yang dapat mereplikasi database dari node master ke node slave.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan garis lintang/bujur terdekat dengan kueri SQL

  2. Cara mencadangkan database MySQL dari baris perintah di Linux

  3. Bagaimana menghubungkan database MySQL jarak jauh di PHP

  4. Format Angka sebagai Persentase di MySQL

  5. Cara Menghitung Pengguna Aktif Harian (DAU) di MySQL