首頁 系統教程 Linux 如何在 MariaDB 中配置主從複製

如何在 MariaDB 中配置主從複製

May 01, 2024 pm 01:49 PM
mysql linux linux教程 紅帽 linux系統 linux指令 linux認證 紅帽linux linux視頻

如何在 MariaDB 中配置主从复制

在我們前面的教學中,我們已經學習如何安裝和設定MariaDB[1],也學習了管理MariaDB 的一些基礎指令 [2]。現在我們來學習,如何在 MariaDB 伺服器上配置一個主從複製。

複製是用於為我們的資料庫建立多個副本,這些副本可以在其它資料庫上用於運行查詢,像一些非常繁重的查詢可能會影響主資料庫伺服器的效能,或者我們可以使用它來做資料冗餘,或兼具以上兩個目的。我們可以將這個過程自動化,即主伺服器到從伺服器的複製過程自動進行。執行備份而不影響在主伺服器上的寫入操作。

因此,我們現在去設定我們的主-從複製,它需要兩台安裝了 MariaDB 的機器。它們的 IP 位址如下:

  • 主伺服器 - 192.168.1.120 主機名稱 - master.ltechlab.com
  • 從伺服器 - 192.168.1.130 主機名稱 - slave.ltechlab.com

MariaDB 安裝到這些機器上之後,我們繼續進行本教學。如果你需要安裝和設定 MariaDB 的教學課程,請查看這個教學[3]

第 1 步 - 主伺服器設定

我們現在進入到 MariaDB 中的一個命名為 important 的資料庫,它將被複製到我們的從伺服器。要開始這個過程,我們編輯名為 /etc/my.cnf 的文件,它是 MariaDB 的設定檔。

$ vi /etc/my.cnf
登入後複製

在這個檔案中找到 [mysqld] 節,然後輸入如下內容:

[mysqld]
log-bin
server_id=1
replicate-do-db=important
bind-address=192.168.1.120
登入後複製

儲存並退出這個檔案。完成之後,需要重新啟動 MariaDB 服務。

$ systemctl restart mariadb
登入後複製
登入後複製

接下來,我們登入我們的主伺服器上的 Mariadb 實例。

$ mysql -u root -p
登入後複製
登入後複製
登入後複製

在它上面建立一個命名為 slaveuser 的為主從複製使用的新用戶,然後執行如下的命令為它分配所需的權限:

STOP SLAVE;
GRANT REPLICATION SLAVE ON *.* TO  'slaveuser'@'%' IDENTIFIED BY 'iamslave';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
登入後複製

注意: 我們配置主從複製需要MASTER_LOG_FILEMASTER_LOG_POS 的值,它可以透過show master status 來獲得,因此,你一定要確保你記下了它們的值。

這些指令執行完成之後,輸入 exit 退出這個會話。

第 2 步 - 建立一個資料庫備份,並將它移到從伺服器上

現在,我們需要去為我們的資料庫 important 建立一個備份,可以使用 mysqldump 指令去備份。

$ mysqldump -u root -p important > important_backup.sql
登入後複製

備份完成後,我們需要重新登入 MariaDB 資料庫,並解鎖我們的表格。

$ mysql -u root -p
$ UNLOCK TABLES;
登入後複製

然後退出這個會話。現在,我們移動我們剛才的備份到從伺服器上,它的 IP 位址是:192.168.1.130。

在主伺服器上的設定已經完成了,現在,我們開始設定從伺服器。

第 3 步:設定從伺服器

我们再次去编辑(从服务器上的) /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
登入後複製
登入後複製
第 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;
登入後複製

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

第 5 步:测试复制

我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 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;
登入後複製

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

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


以上是如何在 MariaDB 中配置主從複製的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

sublime快捷鍵怎麼使用 sublime快捷鍵怎麼使用 Apr 16, 2025 am 08:57 AM

Sublime Text 提供了提高开发效率的快捷键,包括常用的(保存、复制、剪切等)、编辑(缩进、格式化等)、导航(项目面板、文件浏览等)以及查找和替换快捷键。熟练使用这些快捷键可显著提升 Sublime 的使用效率。

See all articles