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:
Dengan MariaDB dipasang pada mesin ini, kami meneruskan tutorial. Jika anda memerlukan tutorial tentang memasang dan mengkonfigurasi MariaDB, lihat tutorial ini[3].
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
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
Simpan dan keluar dari fail ini. Selepas selesai, anda perlu memulakan semula perkhidmatan MariaDB.
$ systemctl restart mariadb
Seterusnya, kami log masuk ke contoh Mariadb pada pelayan utama kami.
$ mysql -u root -p
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;
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.
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
Selepas sandaran selesai, kami perlu log masuk semula ke pangkalan data MariaDB dan membuka kunci jadual kami.
$ mysql -u root -p $ UNLOCK TABLES;
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.
我们再次去编辑(从服务器上的) /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;
你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。
我们的教程结束了,请在下面的评论框中留下你的查询/问题。
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!