In diesem Tutorial zeigen wir Ihnen, wie Sie die grundlegende MySQL-Replikation auf zwei CentOS 7-Servern einrichten, aber die gleichen Schritte sollten auf allen RPM-basierten Systemen funktionieren. Für dieses Tutorial verwenden wir zwei virtuelle CentOS 7-Testserver mit den folgenden IP-Adressen:
MEISTER: 123.456.789.1
SLAVE: 123.456.789.2
Master-Server:
1. Anmeldung über SSH
Melden Sie sich als Benutzer root
beim Master-Server anssh root@IP_Address
2. MySQL-Server installieren
und installieren Sie den MySQL-Server, falls er noch nicht installiert ist
yum install mysql-server mysql
3. Starten Sie den MySQL-Server
Starten Sie den MySQL-Server und aktivieren Sie ihn so, dass er beim Booten gestartet wird
systemctl start mysql systemctl enable mysql
4. MySQL-Server konfigurieren
Öffnen Sie als Nächstes die MySQL-Konfigurationsdatei mit einem Texteditor und fügen Sie die folgenden Zeilen hinzu
vi /etc/my.cnf
server-id = 1 binlog-do-db=database relay-log = mysql-relay-bin relay-log-index = mysql-relay-bin.index log-bin = mysql-bin
Vergessen Sie nicht, „Datenbank“ zu ersetzen ‘ durch den tatsächlichen Namen der Datenbank, die Sie auf den Slave-Server replizieren möchten.
5. Starten Sie den MySQL-Server neu
Speichern Sie die Konfigurationsdatei und starten Sie den MySQL-Server neu, damit die Änderungen wirksam werden
systemctl restart mysql
6. Erstellen Sie einen MySQL-Benutzer für den Slave-Server und konfigurieren Sie ihn
Melden Sie sich als Benutzer root beim MySQL-Server an und erstellen Sie einen Benutzer, der vom Slave verwendet wird
mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'PASSWORD' mysql> FLUSH PRIVILEGES; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 245 | database | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) mysql> exit
Wir benötigen die Koordinaten des Masters, die für den Slave-Server verwendet werden, also notieren Sie sie.
Datei: mysql-bin.000001
Position: 245
Ersetzen Sie „PASSWORT ‘ mit einem wirklich starken Passwort.
Wenn die Datenbank, die Sie replizieren möchten, nicht leer ist, erstellen Sie jetzt einen Dump von der Datenbank
mysqldump -u root -p --master-data database > /root/database.sql
und übertrage die Dump-Datei auf den Slave-Server
rsync -Waq -e ssh /root/database.sql 123.456.789.2:/root
Slave-Server:
7. Melden Sie sich über SSH an und installieren Sie MySQL Server auf dem Slave-Server
Der nächste Schritt ist die Konfiguration des Slave-Servers. Melden Sie sich über SSH als Benutzer root beim Slave-Server an und installieren Sie den MySQL-Server wie auf dem Master-Server.
Nachdem der MySQL-Server installiert und gestartet wurde, öffnen Sie seine Konfigurationsdatei und fügen Sie die folgenden Zeilen hinzu:
vi /etc/my.cnf
server-id = 2 master-host=123.456.789.1 master-connect-retry=60 master-user=slaveuser master-password=PASSWORD replicate-do-db=database relay-log = mysql-relay-bin log-bin = mysql-bin
8. Starten Sie den MySQL-Server neu
Speichern Sie die Datei und starten Sie den MySQL-Server neu, damit die Änderungen wirksam werden.
systemctl restart mysql
Importieren Sie die MySQL-Dump-Datei, die wir auf dem Master-Server erstellt haben
mysql -u root -p < /root/database.sql
9. MySQL-Server konfigurieren
Melden Sie sich als Benutzer root bei MySQL an, stoppen Sie den Slave und konfigurieren Sie ihn, wo er nach der „Master-Protokolldatei“ suchen soll
mysql -u root -p
mysql> slave stop; mysql> CHANGE MASTER TO MASTER_HOST='123.456.789.1', MASTER_USER='slaveuser', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245; mysql> slave start;
Verwenden Sie den MySQL-Benutzernamen und das Passwort, die wir auf dem Master-Server erstellt haben.
Sie können den Slave-Status überprüfen, indem Sie den folgenden MySQL-Befehl ausführen:
mysql> show slave status;
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 123.456.789.1 Master_User: slaveuser Master_Port: 3306 Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: database
Wenn „Slave_IO_State ‘ meldet ‘Warten auf Master, um Ereignis zu senden’, die Replikation war erfolgreich.
Das ist alles. So einfach ist das. Wenn Sie weitere Informationen zum Einrichten einer Replikations-Master-Konfiguration benötigen, finden Sie diese auf der offiziellen MySQL-Website.
Natürlich müssen Sie die MySQL-Replikation nicht auf CentOS einrichten, wenn Sie einen unserer MySQL-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, die MySQL-Replikation auf CentOS für Sie einzurichten. Sie sind 24×7 erreichbar und kümmern sich umgehend um Ihr Anliegen. Sie können auch nach neuen Updates unter How to Install MySQL on CentOS 7 suchen.
PS. Wenn Ihnen dieser Beitrag zur Einrichtung der MySQL-Replikation auf CentOS gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.