Heim >System-Tutorial >LINUX >So konfigurieren Sie die Master-Slave-Replikation in 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:
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.
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
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
Speichern und beenden Sie diese Datei. Nach Abschluss müssen Sie den MariaDB-Dienst neu starten.
$ systemctl restart mariadb
Als nächstes melden wir uns bei der Mariadb-Instanz auf unserem Hauptserver an.
$ mysql -u root -p
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;
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.
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
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;
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.
我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:
[mysqld] server-id = 2 replicate-do-db=important [ …]
现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:
$ mysql -u root -p < /data/ important_backup.sql
当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 important 上的用户 'slaveuser' 授权。
$ mysql -u root -p
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
接下来,为了这个变化生效,重启 MariaDB。
$ systemctl restart mariadb
记住,我们需要 MASTER_LOG_FILE 和 MASTER_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;
注意: 请根据你的机器的具体情况来改变主服务器的配置。
我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 MariaDB。
$ mysql -u root -p
选择数据库为 important:
use important;
在这个数据库上创建一个名为 test 的表:
create table test (c int);
然后在这个表中插入一些数据:
insert into test (c) value (1);
检索刚才插入的值是否存在:
select * from test;
你将会看到刚才你插入的值已经在这个新建的表中了。
现在,我们登入到从服务器的数据库中,查看主从复制是否正常工作。
$ mysql -u root -p $ use important; $ select * from test;
你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。
我们的教程结束了,请在下面的评论框中留下你的查询/问题。
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!