自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

循序漸進(jìn)學(xué)習(xí)如何在MariaDB中配置主從復(fù)制?

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)維 MariaDB
在我們前面的教程中,我們已經(jīng)學(xué)習(xí)了 如何安裝和配置 MariaDB,也學(xué)習(xí)了 管理 MariaDB 的一些基礎(chǔ)命令?,F(xiàn)在我們來(lái)學(xué)習(xí),如何在 MariaDB 服務(wù)器上配置一個(gè)主從復(fù)制。

[[219468]]

在我們前面的教程中,我們已經(jīng)學(xué)習(xí)了 如何安裝和配置 MariaDB,也學(xué)習(xí)了 管理 MariaDB 的一些基礎(chǔ)命令?,F(xiàn)在我們來(lái)學(xué)習(xí),如何在 MariaDB 服務(wù)器上配置一個(gè)主從復(fù)制。

復(fù)制是用于為我們的數(shù)據(jù)庫(kù)創(chuàng)建多個(gè)副本,這些副本可以在其它數(shù)據(jù)庫(kù)上用于運(yùn)行查詢(xún),像一些非常繁重的查詢(xún)可能會(huì)影響主數(shù)據(jù)庫(kù)服務(wù)器的性能,或者我們可以使用它來(lái)做數(shù)據(jù)冗余,或者兼具以上兩個(gè)目的。我們可以將這個(gè)過(guò)程自動(dòng)化,即主服務(wù)器到從服務(wù)器的復(fù)制過(guò)程自動(dòng)進(jìn)行。執(zhí)行備份而不影響在主服務(wù)器上的寫(xiě)操作。

因此,我們現(xiàn)在去配置我們的主-從復(fù)制,它需要兩臺(tái)安裝了 MariaDB 的機(jī)器。它們的 IP 地址如下:

  • 主服務(wù)器 - 192.168.1.120 主機(jī)名 - master.ltechlab.com
  • 從服務(wù)器 - 192.168.1.130 主機(jī)名 - slave.ltechlab.com

MariaDB 安裝到這些機(jī)器上之后,我們繼續(xù)進(jìn)行本教程。如果你需要安裝和配置 MariaDB 的教程,請(qǐng)查看這個(gè)教程。

 

第 1 步 - 主服務(wù)器配置

我們現(xiàn)在進(jìn)入到 MariaDB 中的一個(gè)命名為 important 的數(shù)據(jù)庫(kù),它將被復(fù)制到我們的從服務(wù)器。為開(kāi)始這個(gè)過(guò)程,我們編輯名為 /etc/my.cnf 的文件,它是 MariaDB 的配置文件。

  1. $ vi /etc/my.cnf

在這個(gè)文件中找到 [mysqld] 節(jié),然后輸入如下內(nèi)容:

  1. [mysqld]
  2. log-bin
  3. server_id=1
  4. replicate-do-db=important
  5. bind-address=192.168.1.120

保存并退出這個(gè)文件。完成之后,需要重啟 MariaDB 服務(wù)。

  1. $ systemctl restart mariadb

接下來(lái),我們登入我們的主服務(wù)器上的 Mariadb 實(shí)例。

  1. $ mysql -u root -p

在它上面創(chuàng)建一個(gè)命名為 slaveuser 的為主從復(fù)制使用的新用戶(hù),然后運(yùn)行如下的命令為它分配所需要的權(quán)限:

  1. STOP SLAVE;
  2. GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'iamslave';
  3. FLUSH PRIVILEGES;
  4. FLUSH TABLES WITH READ LOCK;
  5. SHOW MASTER STATUS;

注意: 我們配置主從復(fù)制需要 MASTER_LOG_FILEMASTER_LOG_POS 的值,它可以通過(guò) show master status 來(lái)獲得,因此,你一定要確保你記下了它們的值。

這些命令運(yùn)行完成之后,輸入 exit 退出這個(gè)會(huì)話(huà)。

 

第 2 步 - 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)備份,并將它移動(dòng)到從服務(wù)器上

現(xiàn)在,我們需要去為我們的數(shù)據(jù)庫(kù) important 創(chuàng)建一個(gè)備份,可以使用 mysqldump 命令去備份。

  1. $ mysqldump -u root -p important > important_backup.sql

備份完成后,我們需要重新登錄到 MariaDB 數(shù)據(jù)庫(kù),并解鎖我們的表。

  1. $ mysql -u root -p
  2. $ UNLOCK TABLES;

然后退出這個(gè)會(huì)話(huà)。現(xiàn)在,我們移動(dòng)我們剛才的備份到從服務(wù)器上,它的 IP 地址是:192.168.1.130。

在主服務(wù)器上的配置已經(jīng)完成了,現(xiàn)在,我們開(kāi)始配置從服務(wù)器。

 

第 3 步:配置從服務(wù)器

我們?cè)俅稳ゾ庉嫞◤姆?wù)器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 節(jié),然后輸入如下內(nèi)容:

  1. [mysqld]
  2. server-id = 2
  3. replicate-do-db=important
  4. [ …]

現(xiàn)在,我們恢復(fù)我們主數(shù)據(jù)庫(kù)的備份到從服務(wù)器的 MariaDB 上,運(yùn)行如下命令:

  1. $ mysql -u root -p < /data/ important_backup.sql

當(dāng)這個(gè)恢復(fù)過(guò)程結(jié)束之后,我們將通過(guò)登入到從服務(wù)器上的 MariaDB,為數(shù)據(jù)庫(kù) important 上的用戶(hù) 'slaveuser' 授權(quán)。

  1. $ mysql -u root -p
  1. GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
  2. FLUSH PRIVILEGES;

接下來(lái),為了這個(gè)變化生效,重啟 MariaDB。

  1. $ systemctl restart mariadb

 

第 4 步:?jiǎn)?dòng)復(fù)制

記住,我們需要 MASTER_LOG_FILEMASTER_LOG_POS 變量的值,它可以通過(guò)在主服務(wù)器上運(yùn)行 SHOW MASTER STATUS 獲得。現(xiàn)在登入到從服務(wù)器上的 MariaDB,然后通過(guò)運(yùn)行下列命令,告訴我們的從服務(wù)器它應(yīng)該去哪里找主服務(wù)器。

  1. STOP SLAVE;
  2. 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;
  3. SLAVE START;
  4. SHOW SLAVE STATUS\G;

注意: 請(qǐng)根據(jù)你的機(jī)器的具體情況來(lái)改變主服務(wù)器的配置。

 

第 5 步:測(cè)試復(fù)制

我們將在我們的主服務(wù)器上創(chuàng)建一個(gè)新表來(lái)測(cè)試主從復(fù)制是否正常工作。因此,登入到主服務(wù)器上的 MariaDB。

  1. $ mysql -u root -p

選擇數(shù)據(jù)庫(kù)為 important

  1. use important;

在這個(gè)數(shù)據(jù)庫(kù)上創(chuàng)建一個(gè)名為 test 的表:

  1. create table test (c int);

然后在這個(gè)表中插入一些數(shù)據(jù):

  1. insert into test (c) value (1);

檢索剛才插入的值是否存在:

  1. select * from test;

你將會(huì)看到剛才你插入的值已經(jīng)在這個(gè)新建的表中了。

現(xiàn)在,我們登入到從服務(wù)器的數(shù)據(jù)庫(kù)中,查看主從復(fù)制是否正常工作。

  1. $ mysql -u root -p
  2. $ use important;
  3. $ select * from test;

你可以看到與前面在主服務(wù)器上的命令輸出是一樣的。因此,說(shuō)明我們的主從服務(wù)工作正常,沒(méi)有發(fā)生任何問(wèn)題。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2011-05-20 10:39:43

oracle

2019-06-25 09:02:44

加密加密算法密鑰

2009-08-26 14:25:46

C#消息

2010-01-06 16:40:30

cisco交換機(jī)vla

2010-12-28 16:49:05

2012-03-01 22:37:02

Linux入門(mén)

2009-08-07 03:47:00

2011-05-24 13:47:25

程序員

2023-03-23 08:49:39

負(fù)載均衡服務(wù)器

2020-02-19 08:48:04

Java內(nèi)存模型CPU

2021-06-08 07:48:27

MySQL主從配置

2022-04-21 14:03:54

開(kāi)發(fā)API生命周期

2010-12-28 16:38:16

Windows SerWindows 部署服

2025-02-10 10:55:16

2024-07-04 08:00:00

2009-10-30 14:43:24

寬帶接入網(wǎng)

2023-03-19 22:38:12

邏輯復(fù)制PostgreSQL

2023-03-19 11:53:27

2010-12-31 15:28:41

Windows 7

2011-04-06 09:59:00

MySQL數(shù)據(jù)庫(kù)主從復(fù)制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)