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 giver dig mulighed for automatisk at kopiere data fra en databaseserver 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.

I denne tutorial vil vi forklare, hvordan man opsætter en MySQL Master / Slave-replikation med en master og en slaveserver på CentOS 7. 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

I dette eksempel antager vi, at du har to servere, der kører CentOS 7, som kan kommunikere med hinanden over et privat netværk. Hvis din hostingudbyder ikke leverer 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.59 Slave IP: 192.168.121.14

Installer MySQL

Standard CentOS 7-lagringerne inkluderer ikke MySQL-pakker, så vi installerer MySQL fra deres officielle Yum-arkiv. For at undgå problemer, installerer vi den samme MySQL version 5.7 på begge servere.

Installer MySQL på både Master- og Slave-serverne:

sudo yum localinstall sudo yum install mysql-community-server

Når installationen er afsluttet, skal du starte MySQL-tjenesten og aktivere den til automatisk at starte med boot med:

sudo systemctl enable mysqld sudo systemctl start mysqld

Når MySQL-serveren starter første gang, genereres der en midlertidig adgangskode til MySQL-rodbrugeren. Brug følgende grep-kommando til at finde adgangskoden:

sudo grep 'temporary password' /var/log/mysqld.log

Kør kommandoen mysql_secure_installation at indstille din nye root-adgangskode og forbedre sikkerheden i MySQL-forekomsten:

mysql_secure_installation

Indtast den midlertidige root-adgangskode, og svar Y (ja) på alle spørgsmål.

Den nye adgangskode skal være mindst 8-tegn lang og indeholde mindst et stort bogstav, et lille bogstav, et tal og et specialtegn.

Konfigurer master-serveren

Først konfigurerer vi master MySQL-serveren og foretager følgende ændringer:

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

Dette gøres ved at åbne MySQL-konfigurationsfilen og tilføje følgende linjer i afsnit:

sudo nano /etc/my.cnf mester: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

Når det er gjort, skal du genstarte MySQL-tjenesten, så ændringerne træder i kraft

sudo systemctl restart mysqld

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

mysql -uroot -p

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.14' IDENTIFIED BY 'strong_password';

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

Noter filnavnet 'mysql-bin.000001' og position '1427'. 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/my.cnf slave: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

Genstart MySQL-tjenesten:

sudo systemctl restart mysqld

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

mysql -uroot -p

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.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

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:

mysql -uroot -p

CREATE DATABASE replicatest;

Login til slaven MySQL shell:

mysql -uroot -p

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 på CentOS 7.

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

centos mysql mariadb