GNU/Linux >> Belajar Linux >  >> Linux

Replikasi Master-Slave dengan MariaDB

Ini adalah bagaimana saya mengonfigurasi replikasi Master-Slave dengan MariaDB. Karena MariaDB adalah fork dari MySQL, Anda harus mengikuti langkah yang sama.

Penyiapan saya

Saya berasumsi bahwa Anda sudah menjalankan dua server Maria/MySQL. Itulah fitur-fitur saya:

  • OS:Debian menguji 'Kutu Buku'
  • Versi MariaDB:10.5.12

Saya bekerja dengan dua mesin virtual, untuk membuat slave saya telah menduplikasi master vm.

  • Guru:192.168.122.13
  • Budak:192.168.122.223

Jika Anda tidak memiliki database maria atau mysql, di sini di unixcop kami memiliki beberapa tutorial, juga di sini, di sini atau di sini.

Guru

Seperti yang saya katakan sebelumnya, saya berasumsi bahwa Anda sudah menjalankan maria atau mysql. Kita perlu melakukan beberapa konfigurasi pada master, kemudian pada host slave.

Edit /etc/mysql/mariadb.conf.d/50-server.cnf (atau file yang sesuai dalam pengaturan Anda), dan ubah baris berikut:

bind-address = <your.master.host.ip>
server-id=1

Mulai ulang MariaDB dan buat pengguna dengan hak replikasi:

MariaDB [(none)]> CREATE USER 'esclavo'@'192.168.122.223' IDENTIFIED BY 'SlavePass' ;
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'esclavo'@'192.168.122.223';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;

Pilih nama pengguna dan sandi yang Anda inginkan, esclavo artinya budak pada Spanyol. Tetapkan alamat IP budak Anda MariaDB. Selanjutnya Anda bisa melihat status dengan SHOW MASTER STATUS.

Langkah terakhir (hampir, kita akan kembali nanti) pada master adalah menyalin semua data di server master ke slave. Mari buat dump dengan:

root@my1:~# mysqldump -u root --all-databases -p  --master-data > data.sql

Budak

Pada server slave, pertama ubah file konfigurasi /etc/mysql/mariadb.conf.d/50-server.cnf di baris yang sama dengan master:

bind-address = <your.slave.host.ip> 
server-id=1

Mulai ulang MariaDB dan muat dump dari master dengan:

root@my2:/home/gonz# mysql -uroot < data.sql

Kemudian hentikan slave, atur host master dan mulai slave dengan perintah berikut:

root@my2:/home/gonz# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.5.12-MariaDB-1-log Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> stop slave;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.122.13', MASTER_USER='esclavo',MASTER_PASSWORD='SlavePass';
MariaDB [(none)]> START SLAVE;

Jangan lupa untuk mengubah ip host, pengguna, dan kata sandi ke nilai Anda jika Anda hanya menyalin dan menempelkan perintah itu;).

Menguji dan memperbaiki

Itu harus melakukannya. Jika semuanya berfungsi seperti yang diharapkan, Anda harus memiliki replikasi master-slave dengan MariaDB.

Anda sekarang dapat membuat database di master dan database itu akan muncul secara otomatis di slave. Tapi tidak berhasil untuk saya. Saya telah membuat database di master dengan:

MariaDB [(none)]> CREATE DATABASE somedatabase;

Dan itu tidak direplikasi pada budak. Untuk mengetahui alasannya, saya telah menjalankan server budak:

MariaDB [(none)]> show slave status\G ;

Ketika saya mencari kesalahan itu di Google, mereka menyarankan untuk menjatuhkan pengguna esclavo dan hak istimewa flush. Ini di server budak, juga hentikan budak sebelum menjatuhkan pengguna dan mulai budak setelah menyiram hak istimewa:

MariaDB [(none)]> stop slave;
MariaDB [(none)]> drop user 'esclavo'@'192.168.122.223';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> start slave;

Dan ini diperbaiki untuk saya, seperti yang Anda lihat di tangkapan layar sekarang ada beberapa database database di server budak. Dan itu kosong. Saya kemudian kembali ke master untuk membuat tabel dan mengisi dengan data:

Langkah terakhir adalah memeriksa slave apakah tabel sudah dibuat dan ada data di dalamnya:

Untuk memastikan, Anda dapat memeriksa status budak sekali lagi (atau waktu lain di masa mendatang jika ada yang tidak beres).

Dan akhirnya saya telah menyiapkan replikasi master-slave dengan MariaDB.


Linux
  1. Menyiapkan Replikasi Master-Master dengan MySQL di Debian 8 (Jessie)

  2. Bagaimana cara mengganti MySQL dengan MariaDB di CentOS 6

  3. Cara Mengatur Replikasi Master Slave MariaDB di Ubuntu 18.04

  1. Cara Mengatur Replikasi Master Slave MySQL

  2. Cara Mengonfigurasi Replikasi Master-Slave MySQL di Ubuntu 18.04

  3. Cara Mengonfigurasi Replikasi Master-Slave MySQL di CentOS 7

  1. Cara Mengonfigurasi Replikasi Master-Slave MySQL (MariaDB) di Debian 10

  2. Cara Menginstal dan Mengonfigurasi Replikasi Master-Slave dengan PostgreSQL 9.6 di CentOS 7

  3. Cara Instal WordPress dengan Nginx di AlmaLinux 8