Android

Hvordan konfigurere mysql (mariadb) master

How to Configure MySQL Master-Slave Replication on Ubuntu Linux

How to Configure MySQL Master-Slave Replication on Ubuntu Linux

Innholdsfortegnelse:

Anonim

MySQL-replikering er en prosess for å kopiere data fra en databaseserver (master) til en eller flere servere (slaver).

MySQL støtter flere replikeringstopologier der Master / Slave-topologi er en av de mest kjente topologiene der en databaseserver fungerer som master, mens en eller flere servere fungerer som slaver. Som standard er replikasjonen asynkron der master sender hendelser som beskriver databasemodifikasjoner til den binære loggen og slaver ber om hendelsene når de er klare.

I denne guiden vil vi vise deg hvordan du konfigurerer MariaDB Master / Slave-replikering med en master og en slaveserver på Debian 10. MariaDB er standardimplementeringen av MySQL i Debian. De samme trinnene gjelder for Oracle MySQL.

Denne typen replikeringstopologi er best egnet for distribusjon av lese-kopier for lese skalering, live databaser backup for katastrofegjenoppretting og for analysejobber.

Forutsetninger

Vi antar at du har to servere som kjører Debian 10, som kommuniserer med hverandre over et privat nettverk. Hvis hostingleverandøren din ikke støtter private IP-adresser, kan du bruke de offentlige IP-adressene og konfigurere brannmuren din slik at det kun tillates trafikk på port 3306 fra pålitelige kilder.

Serverne som brukes i dette eksemplet har følgende IP-adresser:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Installerer MariaDB

Standard Debian 10-lagringene inkluderer MariaDB versjon 10.3. Det er best å installere den samme MariaDB-versjonen på begge serverne for å unngå potensielle problemer.

Installer MariaDB på både master og slave ved å utgi følgende kommandoer:

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

Konfigurere hovedserveren

Det første trinnet er å sette opp hovedserveren. Vi gjør følgende endringer:

  • Still MariaDB-serveren til å lytte på den private IP.Sett en unik server-ID. Aktiver binær logging.

Åpne MariaDB-konfigurasjonsfilen og uncomment, eller angi følgende linjer:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf mester: /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 er ferdig, lagrer du filen og start MySQL-tjenesten på nytt for at endringer skal tre i kraft:

sudo systemctl restart mariadb

Neste trinn er å opprette en ny replikasjonsbruker. Logg deg på MariaDB-serveren som rotbruker:

sudo mysql

Kjør følgende SQL-spørsmål for å opprette en bruker som heter replica og gi REPLICATION SLAVE privilegiet til brukeren:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Forsikre deg om at du endrer IP-en med din slave-IP-adresse. Du kan navngi brukeren som du vil.

Når du fremdeles er inne i MySQL-ledeteksten, utfører du følgende kommando som vil skrive ut det binære filnavnet og plasseringen.

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)

Legg merke til filnavnet, 'mysql-bin.000001' og posisjon '328'. Disse verdiene er nødvendige når du konfigurerer slaveserveren og vil sannsynligvis være forskjellige på serveren din.

Konfigurering av slaveserveren

Vi vil gjøre de samme endringene på slaveserveren som på masteren:

  • Still MySQL-serveren til å lytte på den private IP.Sett en unik server-ID. Aktiver binær logging.

Åpne MariaDB-konfigurasjonsfilen og rediger følgende linjer:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf slave: /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

Start MariaDB-tjenesten på nytt:

sudo systemctl restart mariadb

Neste trinn er å konfigurere parametrene som slaveserveren vil bruke for å koble til master-serveren. Logg inn på MariaDB-skallet:

sudo mysql

Start med å stoppe slavetrådene:

STOP SLAVE;

Kjør følgende spørring for å konfigurere Master / Slave-replikasjonen:

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;

Forsikre deg om at du bruker riktig IP-adresse, brukernavn og passord. Loggfilnavnet og posisjonen må være den samme som verdiene du fikk fra hovedserveren.

Når det er gjort, start slavetrådene.

START SLAVE;

Test konfigurasjonen

På dette tidspunktet bør du ha et fungerende Master / Slave-replikasjonsoppsett.

For å bekrefte at alt er riktig konfigurert, oppretter du en ny database på hovedserveren:

sudo mysql

CREATE DATABASE replicatest;

Logg inn på slaven MySQL shell:

sudo mysql

Kjør følgende kommando for å liste alle databaser:

SHOW DATABASES;

Du vil merke at databasen du opprettet på master-serveren er replikert på slaven:

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

Konklusjon

I denne opplæringen har vi vist at du oppretter en MariaDB Master / Slave-replikasjon på Debian 10.

Legg gjerne igjen en kommentar hvis du har spørsmål.

debian mysql mariadb