Heim > System-Tutorial > LINUX > So konfigurieren Sie die Master-Slave-Replikation in MariaDB

So konfigurieren Sie die Master-Slave-Replikation in MariaDB

WBOY
Freigeben: 2024-05-01 13:49:01
nach vorne
527 Leute haben es durchsucht

如何在 MariaDB 中配置主从复制

In unserem vorherigen Tutorial haben wir gelernt, wie man MariaDB[1] installiert und konfiguriert, und haben auch einige grundlegende Befehle zur Verwaltung von MariaDB[2] gelernt. Lassen Sie uns nun lernen, wie Sie eine Master-Slave-Replikation auf einem MariaDB-Server konfigurieren.

Replikation wird verwendet, um mehrere Kopien unserer Datenbank zu erstellen, wie z. B. einige sehr umfangreiche Abfragen, die die Leistung des Hauptdatenbankservers beeinträchtigen können, oder wir können sie zur Datenredundanz verwenden beide oben genannten Zwecke. Wir können diesen Prozess automatisieren, das heißt, der Replikationsprozess vom Master-Server zum Slave-Server wird automatisch durchgeführt. Führen Sie Sicherungen durch, ohne die Schreibvorgänge auf dem Primärserver zu beeinträchtigen.

So konfigurieren wir nun unsere Master-Slave-Replikation, die zwei Maschinen mit installierter MariaDB erfordert. Ihre IP-Adressen lauten wie folgt:

  • Master-Server - 192.168.1.120 Hostname - master.ltechlab.com
  • Slave-Server - 192.168.1.130 Hostname - Slave.ltechlab.com

Wenn MariaDB auf diesen Computern installiert ist, fahren wir mit dem Tutorial fort. Wenn Sie ein Tutorial zur Installation und Konfiguration von MariaDB benötigen, schauen Sie sich dieses Tutorial[3] an.

Schritt 1 – Master-Server-Konfiguration

Wir geben nun in MariaDB eine Datenbank mit dem Namen important ein, die auf unseren Slave-Server kopiert wird. Um den Prozess zu starten, bearbeiten wir eine Datei namens /etc/my.cnf, die Konfigurationsdatei von MariaDB.

$ vi /etc/my.cnf
Nach dem Login kopieren

Suchen Sie den Abschnitt [mysqld] in dieser Datei und geben Sie Folgendes ein:

[mysqld]
log-bin
server_id=1
replicate-do-db=important
bind-address=192.168.1.120
Nach dem Login kopieren

Speichern und beenden Sie diese Datei. Nach Abschluss müssen Sie den MariaDB-Dienst neu starten.

$ systemctl restart mariadb
Nach dem Login kopieren
Nach dem Login kopieren

Als nächstes melden wir uns bei der Mariadb-Instanz auf unserem Hauptserver an.

$ mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen Sie darauf einen neuen Benutzer mit dem Namen slaveuser für die Master-Slave-Replikation und führen Sie dann den folgenden Befehl aus, um ihm die erforderlichen Berechtigungen zuzuweisen:

STOP SLAVE;
GRANT REPLICATION SLAVE ON *.* TO  'slaveuser'@'%' IDENTIFIED BY 'iamslave';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Nach dem Login kopieren

Hinweis: Wir benötigen die Werte von MASTER_LOG_FILE und MASTER_LOG_POS, um die Master-Slave-Replikation zu konfigurieren, die durch Master-Status anzeigen abgerufen werden können. Sie müssen daher sicherstellen, dass Sie deren Werte notieren.

Nachdem Sie diese Befehle ausgeführt haben, geben Sie exit ein, um diese Sitzung zu beenden.

Schritt 2 – Erstellen Sie ein Datenbank-Backup und verschieben Sie es auf den Slave-Server

Jetzt müssen wir ein Backup für unsere Datenbank erstellen Wichtig Sie können zum Sichern den Befehl mysqldump verwenden.

$ mysqldump -u root -p important > important_backup.sql
Nach dem Login kopieren

Nachdem die Sicherung abgeschlossen ist, müssen wir uns erneut bei der MariaDB-Datenbank anmelden und unsere Tabellen entsperren.

$ mysql -u root -p
$ UNLOCK TABLES;
Nach dem Login kopieren

Dann beenden Sie diese Sitzung. Jetzt verschieben wir unser Backup auf den Slave-Server, dessen IP-Adresse 192.168.1.130 lautet.

Die Konfiguration auf dem Master-Server ist abgeschlossen. Nun beginnen wir mit der Konfiguration des Slave-Servers.

Schritt 3: Slave-Server konfigurieren

我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:

[mysqld]
server-id = 2
replicate-do-db=important
[ …]
Nach dem Login kopieren

现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:

$ mysql -u root -p < /data/ important_backup.sql
Nach dem Login kopieren

当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 important 上的用户 'slaveuser' 授权。

$ mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Nach dem Login kopieren

接下来,为了这个变化生效,重启 MariaDB。

$ systemctl restart mariadb
Nach dem Login kopieren
Nach dem Login kopieren
第 4 步:启动复制

记住,我们需要 MASTER_LOG_FILEMASTER_LOG_POS 变量的值,它可以通过在主服务器上运行 SHOW MASTER STATUS 获得。现在登入到从服务器上的 MariaDB,然后通过运行下列命令,告诉我们的从服务器它应该去哪里找主服务器。

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST= '192.168.1.110′, MASTER_USER='slaveuser', MASTER_PASSWORD='iamslave', MASTER_LOG_FILE='mariadb-bin.000001′, MASTER_LOG_POS=460;
SLAVE START;
SHOW SLAVE STATUS\G;
Nach dem Login kopieren

注意: 请根据你的机器的具体情况来改变主服务器的配置。

第 5 步:测试复制

我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 MariaDB。

$ mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

选择数据库为 important

use important;
Nach dem Login kopieren

在这个数据库上创建一个名为 test 的表:

create table test (c int);
Nach dem Login kopieren

然后在这个表中插入一些数据:

insert into test (c) value (1);
Nach dem Login kopieren

检索刚才插入的值是否存在:

select * from test;
Nach dem Login kopieren

你将会看到刚才你插入的值已经在这个新建的表中了。

现在,我们登入到从服务器的数据库中,查看主从复制是否正常工作。

$ mysql -u root -p
$ use important;
$ select * from test;
Nach dem Login kopieren

你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。

我们的教程结束了,请在下面的评论框中留下你的查询/问题。


Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die Master-Slave-Replikation in MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage