Android

Sådan konfigureres mysql master

How to Install and Configure Git and GitHub on Windows

How to Install and Configure Git and GitHub on Windows

Indholdsfortegnelse:

Anonim

MySQL-replikation er en proces, der tillader, at data fra en databaseserver automatisk kopieres til en eller flere servere.

MySQL understøtter en række replikationstopologier, hvor Master / Slave-topologi er en af ​​de mest kendte topologier, hvor en databaseserver fungerer som master, mens en eller flere servere fungerer som slaver. Som standard er replikationen asynkron, hvor masteren sender hændelser, der beskriver databasemodifikationer til dens binære log, og slaver anmoder om begivenhederne, når de er klar.

Denne tutorial dækker et grundlæggende eksempel på MySQL Master / Slave-replikation med en master og en slaveserver på Ubuntu 18.04. De samme trin gælder for MariaDB.

Denne type replikationstopologi er bedst egnet til implementering af læse-replikater til læseskalering, live databaser-sikkerhedskopi til katastrofegendannelse og til analysejob.

Forudsætninger

Dette eksempel antager, at du har to servere, der kører Ubuntu 18.04, som kan kommunikere med hinanden over et privat netværk. Hvis din hostingudbyder ikke tilbyder private IP-adresser, kan du bruge de offentlige IP-adresser og konfigurere din firewall til kun at tillade trafik på port 3306 fra pålidelige kilder.

Serverne i dette eksempel har følgende IP'er:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Installer MySQL

Standard Ubuntu 18.04-oplagerne inkluderer MySQL version 5.7. For at undgå problemer er det bedst at installere den samme MySQL-version på begge servere.

Installer MySQL på master-serveren:

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

Installer MySQL på slaveserveren ved hjælp af de samme kommandoer:

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

Konfigurer master-serveren

Det første trin er at konfigurere master MySQL-serveren. Vi foretager følgende ændringer:

  • Indstil MySQL-serveren til at lytte på den private IP.Sæt et unikt server-ID..Aktiver den binære logføring

Åbn det for at åbne MySQL-konfigurationsfilen og fjerne komponenten, eller indstil 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, skal du genstarte MySQL-tjenesten, så ændringerne træder i kraft:

sudo systemctl restart mysql

Det næste trin er at oprette en ny replikationsbruger. Log ind på MySQL-serveren som root-bruger ved at skrive:

sudo mysql

Fra inde i MySQL-prompten skal du køre følgende SQL-forespørgsler, der opretter replica og giver REPLICATION SLAVE privilegiet til brugeren:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; Sørg for at ændre IP'en med din slave-IP-adresse. Du kan navngive brugeren, som du vil.

Mens du stadig er inde i MySQL-prompten, skal du udføre følgende kommando, der udskriver det binære filnavn og placering.

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)

Noter filnavnet 'mysql-bin.000001' og position '629'. Du har brug for disse værdier, når du konfigurerer slaveserveren. Disse værdier vil sandsynligvis være forskellige på din server.

Konfigurer slaveserveren

Som for masterserveren ovenfor, foretager vi følgende ændringer på slaveserveren:

  • Indstil MySQL-serveren til at lytte på den private IPSet en unik server IDEnable den binære logging

Åbn MySQL-konfigurationsfilen, 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

Genstart MySQL-tjenesten:

sudo systemctl restart mysql

Det næste trin er at konfigurere de parametre, som slaveserveren vil bruge til at oprette forbindelse til masterserveren. Login til MySQL-shell:

sudo mysql

Først skal du stoppe slavetrådene:

STOP SLAVE;

Kør følgende forespørgsel, der indstiller slaven til at replikere 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;

Sørg for, at du bruger den rigtige IP-adresse, brugernavn og adgangskode. Logfilfilens navn og placering skal være de samme som de værdier, du har fået fra hovedserveren.

Når det er gjort, skal du starte slavetrådene.

START SLAVE;

Test konfigurationen

På dette tidspunkt skal du have et fungerende Master / Slave-replikationsopsætning.

For at verificere, at alt fungerer som forventet, opretter vi en ny database på masterserveren:

sudo mysql

CREATE DATABASE replicatest;

Login til slaven MySQL shell:

sudo mysql

Kør følgende kommando for at liste alle databaser:

SHOW DATABASES;

Du vil bemærke, at den database, du oprettede på master-serveren, er replikeret på slaven:

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

Konklusion

I denne tutorial har vi vist, at du opretter en MySQL Master / Slave-replikation.

Du er velkommen til at give en kommentar, hvis du har spørgsmål.

ubuntu mysql mariadb