Mysql: Master-Slave Replication | CentOS 7
Innehållsförteckning:
- förutsättningar
- Installera MySQL
- Konfigurera huvudservern
- Konfigurera slaveservern
- Testa konfigurationen
- Slutsats
MySQL-replikering är en process som låter dig automatiskt kopiera data från en databaseserver 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.
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. 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
I det här exemplet antar vi att du har två servrar som kör CentOS 7, som kan kommunicera med varandra via ett privat nätverk. Om din webbhotell inte tillhandahåller 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.59 Slave IP: 192.168.121.14
Installera MySQL
Standarden CentOS 7-förvar inkluderar inte MySQL-paket så vi kommer att installera MySQL från deras officiella Yum-förvar. För att undvika problem installerar vi samma MySQL version 5.7 på båda servrarna.
Installera MySQL på både Master- och Slave-servrarna:
sudo yum localinstall
sudo yum install mysql-community-server
När installationen är klar, starta MySQL-tjänsten och aktivera den automatiskt att starta vid start med:
sudo systemctl enable mysqld
sudo systemctl start mysqld
När MySQL-servern startar första gången genereras ett tillfälligt lösenord för MySQL-rootanvändaren. För att hitta lösenordet använder du följande grep-kommando:
sudo grep 'temporary password' /var/log/mysqld.log
Kör kommandot
mysql_secure_installation
att ställa in ditt nya root-lösenord och förbättra säkerheten för MySQL-instansen:
mysql_secure_installation
Ange det tillfälliga root-lösenordet och svara på
Y
(ja) på alla frågor.
Konfigurera huvudservern
Först konfigurerar vi master MySQL-servern och 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 lägger till följande rader i
sektion:
sudo nano /etc/my.cnf
mästare: /etc/my.cnf
bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin
När du är klar, starta om MySQL-tjänsten så att ändringarna träder i kraft
sudo systemctl restart mysqld
Nästa steg är att skapa en ny replikationsanvändare. Logga in på MySQL-servern som rotanvändare:
mysql -uroot -p
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.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
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: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
Notera filnamnet "mysql-bin.000001" och Position "1427". 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/my.cnf
slav: /etc/my.cnf
bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin
Starta om MySQL-tjänsten:
sudo systemctl restart mysqld
Nästa steg är att konfigurera parametrarna som slaveservern kommer att använda för att ansluta till huvudservern. Logga in på MySQL-skalet:
mysql -uroot -p
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.59',
MASTER_USER='replica',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1427;
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:
mysql -uroot -p
CREATE DATABASE replicatest;
Logga in på slaven MySQL shell:
mysql -uroot -p
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 på CentOS 7.
Lämna gärna en kommentar om du har några frågor.
centos 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 (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.
Hur man konfigurerar mysql master
MySQL-replikering är en process som gör att data från en databaseserver automatiskt kan kopieras till en eller flera servrar. Denna handledning täcker ett grundläggande exempel på MySQL Master / Slave-replikering med en master och en slaveserver på Ubuntu 18.04.







