在我們前面的教學中,我們已經學習如何安裝和設定MariaDB[1],也學習了管理MariaDB 的一些基礎指令 [2]。現在我們來學習,如何在 MariaDB 伺服器上配置一個主從複製。
複製是用於為我們的資料庫建立多個副本,這些副本可以在其它資料庫上用於運行查詢,像一些非常繁重的查詢可能會影響主資料庫伺服器的效能,或者我們可以使用它來做資料冗餘,或兼具以上兩個目的。我們可以將這個過程自動化,即主伺服器到從伺服器的複製過程自動進行。執行備份而不影響在主伺服器上的寫入操作。
因此,我們現在去設定我們的主-從複製,它需要兩台安裝了 MariaDB 的機器。它們的 IP 位址如下:
- 主伺服器 - 192.168.1.120 主機名稱 - master.ltechlab.com
- 從伺服器 - 192.168.1.130 主機名稱 - slave.ltechlab.com
MariaDB 安裝到這些機器上之後,我們繼續進行本教學。如果你需要安裝和設定 MariaDB 的教學課程,請查看這個教學[3]。
我們現在進入到 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_FILE 和MASTER_LOG_POS 的值,它可以透過show master status 來獲得,因此,你一定要確保你記下了它們的值。
這些指令執行完成之後,輸入 exit 退出這個會話。
現在,我們需要去為我們的資料庫 important 建立一個備份,可以使用 mysqldump 指令去備份。
$ mysqldump -u root -p important > important_backup.sql
備份完成後,我們需要重新登入 MariaDB 資料庫,並解鎖我們的表格。
$ mysql -u root -p $ UNLOCK TABLES;
然後退出這個會話。現在,我們移動我們剛才的備份到從伺服器上,它的 IP 位址是:192.168.1.130。
在主伺服器上的設定已經完成了,現在,我們開始設定從伺服器。
我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:
[mysqld] server-id = 2 replicate-do-db=important [ …]
现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:
$ mysql -u root -p <p>当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 <span style="padding: 4px 8px; font-size: 12px; border-radius: 3px; color: #c7254e; background-color: #f9f2f4;">important</span> 上的用户 'slaveuser' 授权。</p> <pre class="brush:php;toolbar:false">$ 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;
你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。
我们的教程结束了,请在下面的评论框中留下你的查询/问题。
以上是如何在 MariaDB 中配置主從複製的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Windowsispreferredfordesktopcomputingandgamingdueto:1)ITVASTSOFTSOFTWAREANDGAMELIBRARY,2)用戶友好型和customizableInterface,3)廣泛的hardwarecompatibility,and4)PerformanceOptimizationCapities,demalloPtimizationCapities,DespitesomeSomeSomeSomeSourceOmeSourceOmeSourceource-HeaevyAndupDateupdate-uperated。

多年來,Linux軟件分佈依賴於DEB和RPM等本地格式,並深深地根深蒂固。 但是,Flatpak和Snap已經出現,有望成為應用程序包裝的通用方法。 本文考試

Linux和Windows在處理設備驅動程序上的差異主要體現在驅動管理的靈活性和開發環境上。 1.Linux採用模塊化設計,驅動可以動態加載和卸載,開發者需深入理解內核機制。 2.Windows依賴微軟生態,驅動需通過WDK開發並簽名認證,開發相對複雜但保證了系統的穩定性和安全性。

Linux和Windows的安全模型各有優勢。 Linux提供靈活性和可定制性,通過用戶權限、文件系統權限和SELinux/AppArmor實現安全。 Windows則注重用戶友好性,依賴WindowsDefender、UAC、防火牆和BitLocker保障安全。

Linux和Windows在硬件兼容性上不同:Windows有廣泛的驅動程序支持,Linux依賴社區和廠商。解決Linux兼容性問題可通過手動編譯驅動,如克隆RTL8188EU驅動倉庫、編譯和安裝;Windows用戶需管理驅動程序以優化性能。

Linux和Windows在虛擬化支持上的主要區別在於:1)Linux提供KVM和Xen,性能和靈活性突出,適合高定制環境;2)Windows通過Hyper-V支持虛擬化,界面友好,與Microsoft生態系統緊密集成,適合依賴Microsoft軟件的企業。

Linux系統管理員的主要任務包括系統監控與性能調優、用戶管理、軟件包管理、安全管理與備份、故障排查與解決、性能優化與最佳實踐。 1.使用top、htop等工具監控系統性能,並進行調優。 2.通過useradd等命令管理用戶賬戶和權限。 3.利用apt、yum管理軟件包,確保系統更新和安全。 4.配置防火牆、監控日誌、進行數據備份以確保系統安全。 5.通過日誌分析和工具使用進行故障排查和解決。 6.優化內核參數和應用配置,遵循最佳實踐提升系統性能和穩定性。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用