Android

Hur man konfigurerar mysql (mariadb) master

How To Configure MariaDB Server Master-Slave Replication on Ubuntu 18.04 LTS

How To Configure MariaDB Server Master-Slave Replication on Ubuntu 18.04 LTS

Innehållsförteckning:

Anonim

MySQL-replikering är en process för att kopiera data från en databasserver (master) till en eller flera servrar (slavar).

MySQL stöder flera replikeringstopologier där Master / Slave-topologi är en av de mest kända topologierna där en databaseserver fungerar som master, medan en eller flera servrar fungerar som slavar. Som standard är replikationen asynkron där master skickar händelser som beskriver databasändringar till dess binära logg och slavar begär händelserna när de är redo.

I den här guiden visar vi dig hur du ställer in MariaDB Master / Slave-replikering med en master och en slaveserver på Debian 10. MariaDB är standardimplementeringen av MySQL i Debian. Samma steg gäller för Oracle MySQL.

Denna typ av replikeringstopologi är bäst lämpad för distribution av lästa repliker för lässkalning, live databaser backup för katastrofåterställning och för analysjobb.

förutsättningar

Vi antar att du har två servrar som kör Debian 10 och kommunicerar med varandra via ett privat nätverk. Om din värdleverantör inte stöder privata IP-adresser kan du använda de offentliga IP-adresserna och konfigurera din brandvägg för att tillåta trafik på port 3306 endast från pålitliga källor.

Servrarna som används i detta exempel har följande IP-adresser:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Installera MariaDB

Standardinställningarna för Debian 10 inkluderar MariaDB version 10.3. Det är bäst att installera samma MariaDB-version på båda servrarna för att undvika eventuella problem.

Installera MariaDB på både befälhavaren och slaven genom att utfärda följande kommandon:

sudo apt-get update sudo apt-get install mariadb-server

Konfigurera huvudservern

Det första steget är att ställa in huvudservern. Vi gör följande ändringar:

  • Ställ in MariaDB-servern så att den lyssnar på den privata IP. Ställ in en unik server-ID. Aktivera binär loggning.

Öppna MariaDB-konfigurationsfilen och avbrytningen eller ställ in följande rader:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf mästare: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

När du är klar sparar du filen och startar om MySQL-tjänsten så att ändringar träder i kraft:

sudo systemctl restart mariadb

Nästa steg är att skapa en ny replikationsanvändare. Logga in på MariaDB-servern som rotanvändare:

sudo mysql

Kör följande SQL-frågor för att skapa en användare med namnet replica och ge REPLICATION SLAVE :

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Se till att du byter IP med din slav-IP-adress. Du kan namnge användaren som du vill.

När du fortfarande är inne i MySQL-prompten, kör följande kommando som kommer att skriva ut det binära filnamnet och positionen.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Notera filnamnet "mysql-bin.000001" och Position "328". Dessa värden är nödvändiga när du konfigurerar slavservern och kommer förmodligen att vara annorlunda på din server.

Konfigurera slavservern

Vi kommer att göra samma ändringar på slaveservern som på master:

  • Ställ in MySQL-servern så att den lyssnar på den privata IP-enheten. Ställ in ett unikt server-ID. Aktivera binär loggning.

Öppna konfigurationsfilen MariaDB och redigera följande rader:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf slav: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Starta om MariaDB-tjänsten:

sudo systemctl restart mariadb

Nästa steg är att konfigurera parametrarna som slaveservern kommer att använda för att ansluta till huvudservern. Logga in på MariaDB-skalet:

sudo mysql

Börja med att stoppa slavtrådarna:

STOP SLAVE;

Kör följande fråga för att konfigurera Master / Slave-replikering:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Se till att du använder rätt IP-adress, användarnamn och lösenord. Loggfilsnamnet och positionen måste vara desamma som de värden du fick från masterservern.

När du är klar börjar du slavtrådarna.

START SLAVE;

Testa konfigurationen

Vid denna punkt bör du ha en fungerande Master / Slave replication setup.

För att verifiera att allt är korrekt konfigurerat skapar du en ny databas på huvudservern:

sudo mysql

CREATE DATABASE replicatest;

Logga in på slaven MySQL shell:

sudo mysql

Kör följande kommando för att lista alla databaser:

SHOW DATABASES;

Du kommer att märka att databasen du skapade på huvudservern replikeras på slaven:

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

Slutsats

I den här tutorialen har vi visat att du skapar en MariaDB Master / Slave-replikering på Debian 10.

Lämna gärna en kommentar om du har några frågor.

debian mysql mariadb