Rumah > Tutorial sistem > LINUX > teks badan

Bagaimana untuk mengkonfigurasi replikasi tuan-hamba dalam MariaDB

WBOY
Lepaskan: 2024-05-01 13:49:01
ke hadapan
504 orang telah melayarinya

如何在 MariaDB 中配置主从复制

Dalam tutorial kami sebelum ini, kami telah mempelajari cara memasang dan mengkonfigurasi MariaDB[1], dan juga mempelajari beberapa arahan asas untuk mengurus MariaDB[2]. Sekarang mari kita pelajari cara mengkonfigurasi replikasi tuan-hamba pada pelayan MariaDB.

Replikasi digunakan untuk mencipta berbilang salinan pangkalan data kami. Salinan ini boleh digunakan untuk menjalankan pertanyaan pada pangkalan data lain tujuan di atas. Kita boleh mengautomasikan proses ini, iaitu, proses replikasi dari pelayan induk ke pelayan hamba dilakukan secara automatik. Lakukan sandaran tanpa menjejaskan penulisan pada pelayan utama.

Jadi, mari kita konfigurasikan replikasi tuan-hamba kita, yang memerlukan dua mesin dengan MariaDB dipasang. Alamat IP mereka adalah seperti berikut:

  • Pelayan Induk - 192.168.1.120 Nama hos - master.ltechlab.com
  • Pelayan hamba - 192.168.1.130 Nama hos - slave.ltechlab.com

Dengan MariaDB dipasang pada mesin ini, kami meneruskan tutorial. Jika anda memerlukan tutorial tentang memasang dan mengkonfigurasi MariaDB, lihat tutorial ini[3].

Langkah 1 - Konfigurasi Pelayan Induk

Kami kini memasukkan pangkalan data dalam MariaDB bernama penting yang akan disalin ke pelayan hamba kami. Untuk memulakan proses, kami mengedit fail bernama /etc/my.cnf iaitu fail konfigurasi MariaDB.

$ vi /etc/my.cnf
Salin selepas log masuk

Cari bahagian [mysqld] dalam fail ini dan masukkan yang berikut:

[mysqld]
log-bin
server_id=1
replicate-do-db=important
bind-address=192.168.1.120
Salin selepas log masuk

Simpan dan keluar dari fail ini. Selepas selesai, anda perlu memulakan semula perkhidmatan MariaDB.

$ systemctl restart mariadb
Salin selepas log masuk
Salin selepas log masuk

Seterusnya, kami log masuk ke contoh Mariadb pada pelayan utama kami.

$ mysql -u root -p
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Buat pengguna baharu bernama pengguna hamba padanya untuk replikasi induk-hamba, dan kemudian jalankan arahan berikut untuk memberikannya kebenaran yang diperlukan:

STOP SLAVE;
GRANT REPLICATION SLAVE ON *.* TO  'slaveuser'@'%' IDENTIFIED BY 'iamslave';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Salin selepas log masuk

Nota: Kami memerlukan nilai MASTER_LOG_FILE dan MASTER_LOG_POS untuk mengkonfigurasi replikasi tuan-hamba, yang boleh diperolehi dengan tunjukkan status tuan, jadi anda mesti pastikan anda menulis nilainya.

Selepas menjalankan arahan ini, masukkan keluar untuk keluar dari sesi ini.

Langkah 2 - Buat sandaran pangkalan data dan alihkannya ke pelayan hamba

Sekarang, kami perlu membuat sandaran untuk pangkalan data kami penting Anda boleh menggunakan arahan mysqldump untuk membuat sandaran.

$ mysqldump -u root -p important > important_backup.sql
Salin selepas log masuk

Selepas sandaran selesai, kami perlu log masuk semula ke pangkalan data MariaDB dan membuka kunci jadual kami.

$ mysql -u root -p
$ UNLOCK TABLES;
Salin selepas log masuk

Kemudian keluar dari sesi ini. Sekarang, kami memindahkan sandaran kami ke pelayan hamba, yang alamat IPnya ialah: 192.168.1.130.

Konfigurasi pada pelayan induk telah selesai Sekarang, kita mula mengkonfigurasi pelayan hamba.

Langkah 3: Konfigurasikan pelayan hamba

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

[mysqld]
server-id = 2
replicate-do-db=important
[ …]
Salin selepas log masuk

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

$ mysql -u root -p < /data/ important_backup.sql
Salin selepas log masuk

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

$ mysql -u root -p
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Salin selepas log masuk

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

$ systemctl restart mariadb
Salin selepas log masuk
Salin selepas log masuk
第 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;
Salin selepas log masuk

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

第 5 步:测试复制

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

$ mysql -u root -p
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

选择数据库为 important

use important;
Salin selepas log masuk

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

create table test (c int);
Salin selepas log masuk

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

insert into test (c) value (1);
Salin selepas log masuk

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

select * from test;
Salin selepas log masuk

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

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

$ mysql -u root -p
$ use important;
$ select * from test;
Salin selepas log masuk

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

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


Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi replikasi tuan-hamba dalam MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:linuxprobe.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!