sql >> Database >  >> NoSQL >> MongoDB

MySQL Master-Slave-replicatie instellen op Ubuntu 18.04

MySQL master-slave-replicatie is een procedure waarmee databasebestanden kunnen worden gerepliceerd of gekopieerd over een of meer knooppunten in een netwerk. Deze opstelling biedt redundantie en fouttolerantie zodat in het geval van een storing in de Master node , kunnen de databases nog steeds worden hersteld in de Slave-node . Dit geeft gebruikers de gemoedsrust dat in geen geval alles verloren gaat, aangezien een replica van de databases nog steeds van een andere server kan worden opgehaald.

In deze handleiding leert u hoe u een MySQL . uitvoert database Master-slave replicatie op een Ubuntu 18.04 systeem.

Vereisten

In de setup hebben we twee servers met Ubuntu 18.04 met de volgende IP-adressen.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Laten we er nu in duiken en kijken hoe we de Master-slave . kunnen configureren replicatie instellen op Ubuntu .

Stap 1:installeer MySQL op master- en slave-knooppunten

Ubuntu repositories bevatten versie 5.7 van MySQL . Om te profiteren van nieuwe functies en mogelijke problemen te voorkomen, moet u de nieuwste MySQL-versie installeren. Maar laten we eerst de twee knooppunten bijwerken met het volgende apt-commando.

$ sudo apt update

MySQL installeren Voer op beide knooppunten het commando uit.

$ sudo apt install mysql-server mysql-client

Open vervolgens de mysql configuratiebestand.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Op het Hoofdknooppunt , scroll en zoek het bind-address kenmerk zoals hieronder weergegeven.

bind-address 	 =127.0.0.1

Wijzig het loopback-adres zodat het overeenkomt met het IP-adres van het Masterknooppunt .

bind-address  	=10.128.0.28

Geef vervolgens een waarde op voor de server-id attribuut in de [mysqld] sectie. Het nummer dat u kiest, mag niet overeenkomen met een ander server-ID-nummer. Laten we de waarde toewijzen 1 .

server-id	 =1

Helemaal aan het einde van het configuratiebestand kopieer en plak je de onderstaande regels.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Sluit het configuratiebestand af en start de MySQL-service opnieuw om de wijzigingen door te voeren op het hoofdknooppunt.

$ sudo systemctl restart mysql

Geef de opdracht om te controleren of de MySQL-server werkt zoals verwacht.

$ sudo systemctl status mysql

Perfect! MySQL-server werkt zoals verwacht!

Stap 2:maak een nieuwe gebruiker voor replicatie op hoofdknooppunt

In deze sectie gaan we een replicatiegebruiker maken in het hoofdknooppunt . Om dit te bereiken, logt u in op de MySQL-server zoals weergegeven.

$ sudo mysql -u root -p

Ga vervolgens verder en voer de onderstaande query's uit om een ​​replicagebruiker te maken en toegang te verlenen tot de replicatieslave. Vergeet niet uw IP-adres te gebruiken.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Voer vervolgens de volgende opdracht uit.

mysql> SHOW MASTER STATUS\G

De uitvoer zou vergelijkbaar moeten zijn met wat u hieronder kunt zien.

Wees scherp en noteer de mysql-bin.000002 waarde en de Positie-ID 1643 . Deze waarden zijn cruciaal bij het instellen van de slave-server .

Stap 3:Configureer de MySQL Slave Server

Ga naar de slave-server en zoals we deden met de Master-server , open het MySQL-configuratiebestand.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Net als de hoofdserver , ga verder met het bewerken van de volgende regels.

bind-address           = 10.128.0.29

Geef zoals eerder een waarde op voor de server-id attribuut in de [mysqld] sectie. Selecteer deze keer een andere waarde. Laten we gaan met 2 .

server-id		=2 

Plak nogmaals de onderstaande regels helemaal aan het einde van het configuratiebestand.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Start vervolgens de MySQL-server opnieuw op het slave-knooppunt.

$ sudo systemctl restart mysql

Als u klaar bent, slaat u de teksteditor op en sluit u deze af

Log vervolgens in op de MySQL-shell zoals weergegeven.

$ sudo mysql -u root -p

In deze stap moet u een configuratie maken waarmee de slave-server om verbinding te maken met de hoofdserver . Maar stop eerst de slave-threads zoals weergegeven.

mysql> STOP SLAVE; 

Om de slave-server toe te staan om de Hoofdserver te repliceren , voer de opdracht uit.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Als je enthousiast genoeg bent, zul je zien dat we de mysql-bin.00002 hebben gebruikt waarde en positie-ID 1643 eerder weergegeven na het aanmaken van de slave-replicatiegebruiker.

Bovendien zijn het IP-adres, de replicatiegebruiker en het wachtwoord van de hoofdserver gebruikt.

Start later de draad die u eerder had gestopt.

mysql> START SLAVE;

Stap 4:Controleer de MySQL Master-Slave-replicatie

Om te controleren of de setup inderdaad werkt zoals verwacht, gaan we een nieuwe database maken op de master en controleren of deze is gerepliceerd op de MySQL Slave-server.

Log in op MySQL op de Hoofdserver .

$ sudo mysql -u root -p

Laten we een testdatabase maken. In dit geval zullen we een database maken met de naam replication_db .

mysql> CREATE DATABASE replication_db;

Log nu in op uw MySQL-instantie op de slave-server .

$ sudo mysql -u root -p

Maak nu een lijst van de databases met behulp van de query.

mysql> SHOW DATABASES;

U zult de database opmerken die u hebt gemaakt op de master is gerepliceerd op slave . Geweldig ! Uw MySQL Master-slave-replicatie werkt zoals verwacht! U kunt er nu zeker van zijn dat in het geval van een storing, kopieën van databasebestanden worden gerepliceerd naar de slave-server.

Conclusie

In deze handleiding hebt u geleerd hoe u een MySQL Master-slave . instelt replicatie instellen op Ubuntu 18.04 .


  1. Hoe string in alle documenten in Mongo te vervangen

  2. Mongoose - veroorzaakt door ::11000 E11000 dubbele sleutelfoutindex?

  3. MongoDB $concatArrays

  4. MongoDB gaat Sharding gebruiken met $lookup Aggregation Operator