sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man ställer in MySQL Master-Slave Replication på Ubuntu 18.04

MySQL master-slave replikering är en procedur som gör att databasfiler kan replikeras eller kopieras över en eller flera noder i ett nätverk. Denna inställning ger redundans och feltolerans så att i händelse av ett fel i Masternoden , kan databaserna fortfarande återställas i Slavnoden . Detta ger användarna sinnesfrid att allt inte kommer att gå förlorat i alla fall eftersom en replik av databaserna fortfarande kan hämtas från en annan server.

I den här guiden kommer du att lära dig hur du utför en MySQL databas Master-slave replikering på en Ubuntu 18.04 system.

Förutsättningar

I installationen kommer vi att ha två servrar som kör Ubuntu 18.04 med följande IP-adresser.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Låt oss nu dyka in och se hur vi kan konfigurera Master-slave replikeringsinställningar på Ubuntu .

Steg 1:Installera MySQL på master- och slavnoder

Ubuntu arkiv innehåller version 5.7 av MySQL . För att dra nytta av alla nya funktioner och undvika potentiella problem bör du installera den senaste MySQL-versionen. Men först, låt oss uppdatera de två noderna med följande apt-kommando.

$ sudo apt update

För att installera MySQL på båda noderna, kör kommandot.

$ sudo apt install mysql-server mysql-client

Öppna sedan mysql konfigurationsfil.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Master-noden , bläddra och leta reda på bind-address attribut som visas nedan.

bind-address 	 =127.0.0.1

Ändra loopback-adressen så att den matchar IP-adressen för Masternoden .

bind-address  	=10.128.0.28

Ange sedan ett värde för server-id attribut i [mysqld] sektion. Numret du väljer bör inte matcha något annat server-id-nummer. Låt oss tilldela värdet 1 .

server-id	 =1

I slutet av konfigurationsfilen, kopiera och klistra in raderna nedan.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Avsluta konfigurationsfilen och starta om MySQL-tjänsten för att ändringarna ska träda i kraft på huvudnoden.

$ sudo systemctl restart mysql

För att verifiera att MySQL-servern körs som förväntat, utfärda kommandot.

$ sudo systemctl status mysql

Perfekt! MySQL-servern körs som förväntat!

Steg 2:Skapa en ny användare för replikering på huvudnoden

I det här avsnittet kommer vi att skapa en replikeringsanvändare i masternoden . För att uppnå detta, logga in på MySQL-servern som visas.

$ sudo mysql -u root -p

Fortsätt sedan och kör frågorna nedan för att skapa en replikanvändare och ge åtkomst till replikeringsslaven. Kom ihåg att använda din IP-adress.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Kör sedan följande kommando.

mysql> SHOW MASTER STATUS\G

Utdata bör likna det du kan se nedan.

Var angelägen och notera mysql-bin.000002 värde och positions-ID 1643 . Dessa värden kommer att vara avgörande när du konfigurerar slavservern .

Steg 3:Konfigurera MySQL-slavservern

Gå ut till slavservern och som vi gjorde med Masterservern , öppna MySQL-konfigurationsfilen.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Precis som huvudservern , fortsätt att redigera följande rader.

bind-address           = 10.128.0.29

Som tidigare, ange ett värde för server-id attribut i [mysqld] sektion. Välj ett annat värde den här gången. Låt oss gå med 2 .

server-id		=2 

Återigen, klistra in raderna nedan i slutet av konfigurationsfilen.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Starta sedan om MySQL-servern på slavnoden.

$ sudo systemctl restart mysql

När du är klar, spara och avsluta textredigeraren

Logga sedan in på MySQL-skalet som visas.

$ sudo mysql -u root -p

I det här steget måste du göra någon konfiguration som tillåter slavservern för att ansluta till huvudservern . Men först, stoppa slavtrådarna som visas.

mysql> STOP SLAVE; 

För att tillåta slavservern för att replikera huvudservern , kör kommandot.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Om du är tillräckligt sugen kommer du att se att vi har använt mysql-bin.00002 värde och positions-ID 1643 visades tidigare efter att slavreplikeringsanvändaren skapats.

Dessutom har huvudserverns IP-adress, replikeringsanvändare och lösenord använts.

Starta senare tråden som du tidigare stoppat.

mysql> START SLAVE;

Steg 4:Verifiera MySQL Master-Slave-replikeringen

För att kontrollera om installationen verkligen fungerar som förväntat, kommer vi att skapa en ny databas på mastern och kontrollera om den har replikerats på MySQL-slavservern.

Logga in på MySQL på Master-servern .

$ sudo mysql -u root -p

Låt oss skapa en testdatabas. I det här fallet kommer vi att skapa en databas som heter replikering_db .

mysql> CREATE DATABASE replication_db;

Logga nu in på din MySQL-instans i slavservern .

$ sudo mysql -u root -p

Lista nu databaserna med hjälp av frågan.

mysql> SHOW DATABASES;

Du kommer att märka databasen du skapade på master har replikerats på slav . Grymt bra ! Din MySQL Master-slave-replikering fungerar som förväntat! Du kan nu vara säker på att kopior av databasfiler replikeras till slavservern i händelse av fel.

Slutsats

I den här guiden lärde du dig hur du ställer in en MySQL Master-slave replikeringsinställningar på Ubuntu 18.04 .


  1. Spring Redis Error Handle

  2. Hur kan jag hitta storleken på ett redis-ämne (underuppsättning av nycklar)?

  3. Maskering av PII i MongoDB, Cassandra och Elasticsearch med DarkShield:...

  4. Använd Mongosniff för att förtydliga vad din MongoDB hör och säger