Android

Hvordan konfigurere mysql master

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Innholdsfortegnelse:

Anonim

MySQL-replikering er en prosess som gjør det mulig å kopiere data fra en databaseserver automatisk til en eller flere servere.

MySQL støtter en rekke 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.

Denne opplæringen dekker et grunnleggende eksempel på MySQL Master / Slave-replikering med en master og en slaveserver på Ubuntu 18.04. De samme trinnene gjelder for MariaDB.

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

Forutsetninger

Dette eksemplet antar at du har to servere som kjører Ubuntu 18.04, som kan kommunisere med hverandre over et privat nettverk. Hvis hostingleverandøren din ikke tilbyr 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 i dette eksemplet har følgende IP-er:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Installer MySQL

Standard Ubuntu 18.04-depotene inkluderer MySQL versjon 5.7. For å unngå problemer er det best å installere den samme MySQL-versjonen på begge serverne.

Installer MySQL på master-serveren:

sudo apt-get update sudo apt-get install mysql-server

Installer MySQL på Slave-serveren ved hjelp av de samme kommandoene:

sudo apt-get update sudo apt-get install mysql-server

Konfigurer hovedserveren

Det første trinnet er å konfigurere master MySQL-serveren. Vi gjør følgende endringer:

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

Å gjøre det, åpne MySQL-konfigurasjonsfilen og koble fra eller angi følgende:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf mester: /etc/mysql/mysql.conf.d/mysqld.cnf

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

Når det er gjort, start MySQL-tjenesten på nytt for at endringene skal tre i kraft:

sudo systemctl restart mysql

Neste trinn er å opprette en ny replikasjonsbruker. Logg på MySQL-serveren som rotbruker ved å skrive:

sudo mysql

Fra inne i MySQL-ledeteksten kjører du følgende SQL-spørringer som vil opprette replica brukeren og gi REPLICATION SLAVE privilegiet til brukeren:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; 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: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Legg merke til filnavnet, 'mysql-bin.000001' og posisjon '629'. Du trenger disse verdiene når du konfigurerer slaveserveren. Disse verdiene vil sannsynligvis være forskjellige på serveren din.

Konfigurer slaveserveren

Som for hovedserveren ovenfor, vil vi gjøre følgende endringer på slaveserveren:

  • Still MySQL-serveren til å lytte på den private IPSet en unik server IDEnable den binære loggingen

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

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf slave: /etc/mysql/mysql.conf.d/mysqld.cnf

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

Start MySQL-tjenesten på nytt:

sudo systemctl restart mysql

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

sudo mysql

Først må du stoppe slavetrådene:

STOP SLAVE;

Kjør følgende spørring som vil sette opp slaven for å gjenskape masteren:

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

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 fungerer som forventet, oppretter vi 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 MySQL Master / Slave-replikasjon.

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

ubuntu mysql mariadb