How To Configure MySQL Master-Slave Replication on Ubuntu 18.04
Innehållsförteckning:
- förutsättningar
- Installera MySQL
- Konfigurera huvudservern
- Konfigurera slaveservern
- Testa konfigurationen
- Slutsats
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.
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 mariadbLedamöter av Europaparlamentet kommer att avgöra om en rad frågor, bland annat hur man reglerar telekomföretag i EU, hur man straffar företag som snedvrider konkurrensen, hur man delar radiofrekvenser som släpps av TV: s migrering till digital sändning och hur man skyddar medborgarnas data i den digitala tiden.
Men de är delade om huruvida IP-adresser ska ses som personuppgifter. "Vi kommer att be kommissionen att formellt lägga fram en rapport om detta", säger Malcolm Harbour, en brittisk konservativ parlamentsledamot som spelar en central roll för att hylla den så kallade telekomrevisionen genom parlamentet.
Hur man konfigurerar mysql master
MySQL-replikering är en process som låter dig automatiskt kopiera data från en databaseserver till en eller flera servrar. I den här tutorialen kommer vi att förklara hur man ställer in en MySQL Master / Slave-replikering med en master och en slaveserver på CentOS 7.
Hur man konfigurerar mysql (mariadb) master
I den här guiden visar vi dig hur du ställer in MariaDB Master / Slave-replikering med en master och en slaveserver på Debian 10. MariaDB är standardimplementeringen av MySQL i Debian.













