Android

Hur man konfigurerar mysql master

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Innehållsförteckning:

Anonim

MySQL-replikering är en process som gör att data från en databaseserver automatiskt kan kopieras till en eller flera servrar.

MySQL stöder ett antal replikeringstopologier där Master / Slave-topologi är en av de mest kända topologierna där en databaseserver fungerar som master, medan en eller flera servrar fungerar som slavar. Som standard är replikationen asynkron där befälhavaren skickar händelser som beskriver databasändringar till dess binära logg och slavar begär händelserna när de är redo.

Denna handledning täcker ett grundläggande exempel på MySQL Master / Slave-replikering med en master och en slaveserver på Ubuntu 18.04. Samma steg gäller för MariaDB.

Denna typ av replikeringstopologi är bäst lämpad för distribution av lästa repliker för lässkalning, live databaser backup för katastrofåterställning och för analysjobb.

förutsättningar

Detta exempel antar att du har två servrar som kör Ubuntu 18.04, som kan kommunicera med varandra via ett privat nätverk. Om din webbhotell inte erbjuder privata IP-adresser kan du använda de offentliga IP-adresserna och konfigurera din brandvägg för att tillåta trafik på port 3306 endast från pålitliga källor.

Servrarna i detta exempel har följande IP: er:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Installera MySQL

Standardförråd Ubuntu 18.04 innehåller MySQL version 5.7. För att undvika problem är det bäst att installera samma MySQL-version på båda servrarna.

Installera MySQL på Master-servern:

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

Installera MySQL på Slaveservern med samma kommandon:

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

Konfigurera huvudservern

Det första steget är att konfigurera master MySQL-servern. Vi gör följande ändringar:

  • Ställ in MySQL-servern så att den lyssnar på den privata IP. Ställ in ett unikt server-ID.. Aktivera den binära loggningen

För att göra det öppnar du MySQL-konfigurationsfilen och avgränsar eller ställer in följande:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf mästare: /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 du är klar, starta om MySQL-tjänsten så att ändringarna träder i kraft:

sudo systemctl restart mysql

Nästa steg är att skapa en ny replikationsanvändare. Logga in på MySQL-servern som rotanvändare genom att skriva:

sudo mysql

Från inuti MySQL-prompten kör du följande SQL-frågor som skapar replica och ger användaren REPLICATION SLAVE :

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; Se till att du byter IP med din slav-IP-adress. Du kan namnge användaren som du vill.

När du fortfarande är inne i MySQL-prompten, kör följande kommando som kommer att skriva ut det binära filnamnet och positionen.

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)

Notera filnamnet "mysql-bin.000001" och Position "629". Du behöver dessa värden när du konfigurerar slavservern. Dessa värden kommer förmodligen att vara olika på din server.

Konfigurera slaveservern

Liksom för huvudservern ovan kommer vi att göra följande ändringar på slavservern:

  • Ställ in MySQL-servern att lyssna på den privata IPSet en unik server IDEnable the binär loggning

Öppna MySQL-konfigurationsfilen och redigera följande rader:

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

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

Starta om MySQL-tjänsten:

sudo systemctl restart mysql

Nästa steg är att konfigurera parametrarna som slaveservern kommer att använda för att ansluta till huvudservern. Logga in på MySQL-skalet:

sudo mysql

Stoppa först slavtrådarna:

STOP SLAVE;

Kör följande fråga som ställer in slaven för att replikera befälhavaren:

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;

Se till att du använder rätt IP-adress, användarnamn och lösenord. Loggfilsnamnet och positionen måste vara desamma som de värden du fick från masterservern.

När du är klar börjar du slavtrådarna.

START SLAVE;

Testa konfigurationen

Vid denna punkt bör du ha en fungerande Master / Slave replication setup.

För att verifiera att allt fungerar som förväntat skapar vi en ny databas på huvudservern:

sudo mysql

CREATE DATABASE replicatest;

Logga in på slaven MySQL shell:

sudo mysql

Kör följande kommando för att lista alla databaser:

SHOW DATABASES;

Du kommer att märka att databasen du skapade på huvudservern replikeras på slaven:

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

Slutsats

I denna handledning har vi visat att du skapar en MySQL Master / Slave-replikering.

Lämna gärna en kommentar om du har några frågor.

ubuntu mysql mariadb