Android

Hoe mysql master te configureren

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Inhoudsopgave:

Anonim

MySQL-replicatie is een proces waarmee gegevens van één databaseserver automatisch naar een of meer servers kunnen worden gekopieerd.

MySQL ondersteunt een aantal replicatietopologieën waarbij Master / Slave-topologie een van de meest bekende topologieën is waarin één databaseserver fungeert als master, terwijl een of meer servers fungeren als slaves. Standaard is de replicatie asynchroon, waarbij de master gebeurtenissen die databasemodificaties beschrijven naar het binaire logboek verzendt en slaves de gebeurtenissen aanvragen wanneer ze gereed zijn.

Deze tutorial behandelt een basisvoorbeeld van MySQL Master / Slave-replicatie met één master en één slave-server op Ubuntu 18.04. Dezelfde stappen zijn van toepassing op MariaDB.

Dit type replicatietopologie is het meest geschikt voor het inzetten van leesreplica's voor leesschaling, live databaseback-up voor noodherstel en voor analysetaken.

voorwaarden

In dit voorbeeld wordt ervan uitgegaan dat u twee servers hebt waarop Ubuntu 18.04 wordt uitgevoerd, die via een privénetwerk met elkaar kunnen communiceren. Als uw hostingprovider geen privé-IP-adressen aanbiedt, kunt u de openbare IP-adressen gebruiken en uw firewall configureren om verkeer op poort 3306 alleen van vertrouwde bronnen toe te staan.

De servers in dit voorbeeld hebben de volgende IP's:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Installeer MySQL

De standaard repository's van Ubuntu 18.04 bevatten MySQL versie 5.7. Om problemen te voorkomen, is het het beste om dezelfde MySQL-versie op beide servers te installeren.

Installeer MySQL op de hoofdserver:

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

Installeer MySQL op de Slave-server met dezelfde opdrachten:

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

Configureer de hoofdserver

De eerste stap is het configureren van de master MySQL-server. We zullen de volgende wijzigingen aanbrengen:

  • Stel de MySQL-server in om te luisteren op het privé-IP. Stel een unieke server-ID in. Schakel de binaire logboekregistratie in

Open hiervoor het MySQL-configuratiebestand en uncomment of stel het volgende in:

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

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

Zodra u klaar bent, start u de MySQL-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart mysql

De volgende stap is het maken van een nieuwe replicatiegebruiker. Log in op de MySQL-server als rootgebruiker door het volgende te typen:

sudo mysql

Voer vanuit de MySQL-prompt de volgende SQL-query's uit die de replica gebruiker maken en het recht REPLICATION SLAVE aan de gebruiker verlenen:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; Zorg ervoor dat u het IP-adres wijzigt met uw slave IP-adres. U kunt de gebruiker een naam geven zoals u dat wilt.

Terwijl u zich nog steeds in de MySQL-prompt bevindt, voert u de volgende opdracht uit die de binaire bestandsnaam en positie afdrukt.

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)

Let op de bestandsnaam 'mysql-bin.000001' en positie '629'. U hebt deze waarden nodig bij het configureren van de slaveserver. Deze waarden zullen waarschijnlijk anders zijn op uw server.

Configureer de slaveserver

Zoals voor de hoofdserver hierboven, zullen we de volgende wijzigingen aanbrengen in de slaveserver:

  • Stel de MySQL-server in om op de privé-IPS te luisteren Stel een unieke server-ID in Schakel de binaire logboekregistratie in

Open het MySQL-configuratiebestand en bewerk de volgende regels:

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 de MySQL-service opnieuw:

sudo systemctl restart mysql

De volgende stap is het configureren van de parameters die de slaveserver zal gebruiken om verbinding te maken met de masterserver. Log in op de MySQL-shell:

sudo mysql

Stop eerst de hulpdraden:

STOP SLAVE;

Voer de volgende query uit waarmee de slave de master repliceert:

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;

Zorg ervoor dat u het juiste IP-adres, gebruikersnaam en wachtwoord gebruikt. De naam en positie van het logboekbestand moeten hetzelfde zijn als de waarden die u van de masterserver hebt verkregen.

Zodra u klaar bent, start u de slave-threads.

START SLAVE;

Test de configuratie

Op dit punt zou u een werkende Master / Slave-replicatie-instelling moeten hebben.

Om te controleren of alles werkt zoals verwacht, maken we een nieuwe database op de hoofdserver:

sudo mysql

CREATE DATABASE replicatest;

Log in op de slave MySQL-shell:

sudo mysql

Voer de volgende opdracht uit om alle databases weer te geven:

SHOW DATABASES;

U zult merken dat de database die u op de masterserver hebt gemaakt, op de slave wordt gerepliceerd:

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

Conclusie

In deze zelfstudie hebben we laten zien dat u een MySQL Master / Slave-replicatie maakt.

Als je nog vragen hebt, kun je een reactie achterlaten.

ubuntu mysql mariadb