MySQL(基于GTID方式)實現(xiàn)主從復(fù)制和單主復(fù)制詳細教程
前言
在分布式數(shù)據(jù)庫系統(tǒng)中,主從復(fù)制是實現(xiàn)高可用性和數(shù)據(jù)冗余的重要手段?;贕TID(Global Transaction Identifier)的復(fù)制模式可以提供更強的復(fù)制一致性和簡化故障轉(zhuǎn)移過程。本文將詳細介紹如何配置單主復(fù)制的GTID模式,以便在MySQL數(shù)據(jù)庫中實現(xiàn)穩(wěn)定可靠的數(shù)據(jù)復(fù)制。
1. 單主復(fù)制
1.1 主服務(wù)器配置
首先,我們需要配置主服務(wù)器的MySQL,使其支持GTID模式。
修改MySQL配置文件
使用以下命令編輯MySQL配置文件:
vim /etc/my.cnf
在配置文件中添加以下內(nèi)容:
server-id = 100 log_bin = mysql-bin gtid_mode = ON enforce_gtid_consistency = true
這些配置選項的作用如下:
server-id
: 唯一標識MySQL實例的ID。log_bin
: 啟用二進制日志記錄。gtid_mode
: 開啟GTID模式。enforce_gtid_consistency
: 強制GTID一致性,確保每個事務(wù)都有一個唯一的GTID。
重啟MySQL服務(wù)
應(yīng)用配置更改后,需要重啟MySQL服務(wù):
systemctl restart mysqld
1.2 創(chuàng)建具有復(fù)制權(quán)限的用戶
接下來,在主服務(wù)器上創(chuàng)建一個專門用于復(fù)制的用戶,并授予其相應(yīng)的權(quán)限:
grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234'; flush privileges; show master status\G;
grant replication slave
: 授予復(fù)制權(quán)限。flush privileges
: 刷新權(quán)限,使其立即生效。show master status
: 查看主服務(wù)器的當前狀態(tài)。
1.3 從服務(wù)器配置
在從服務(wù)器上進行類似的配置,使其能夠與主服務(wù)器同步。
修改MySQL配置文件
使用以下命令編輯從服務(wù)器的MySQL配置文件:
vim /etc/my.cnf
在配置文件中添加以下內(nèi)容:
server-id = 110 gtid_mode = ON enforce_gtid_consistency = true
這些配置與主服務(wù)器類似,只是server-id
需要不同于主服務(wù)器。
重啟MySQL服務(wù)
應(yīng)用配置更改后,重啟從服務(wù)器的MySQL服務(wù):
systemctl restart mysqld
1.4 配置從服務(wù)器的復(fù)制
在從服務(wù)器上執(zhí)行以下命令,配置與主服務(wù)器的復(fù)制關(guān)系:
mysql -uroot -pABCabc-123
change master to master_host="192.168.180.50", master_user="repluser", master_password="ABCabc-123", master_auto_position=1;
這些命令的作用如下:
master_host
: 主服務(wù)器的IP地址。master_user
: 用于復(fù)制的用戶名。master_password
: 用戶的密碼。master_auto_position
: 自動位置調(diào)整,確保使用GTID模式。
1.5 啟動從服務(wù)
配置完成后,啟動從服務(wù)器的復(fù)制服務(wù):
start slave;
1.6 查看從服務(wù)器狀態(tài)
使用以下命令查看從服務(wù)器的狀態(tài),以確保復(fù)制正常運行:
show slave status\G;
測試主從復(fù)制
最后,進行測試以驗證主從復(fù)制是否正常工作。
在主服務(wù)器上測試
mysql> create database smqnz; // 創(chuàng)建數(shù)據(jù)庫 Query OK, 1 row affected (0.00 sec) mysql> use smqnz; // 進入smqnz數(shù)據(jù)庫 Database changed mysql> create table test(age int); // 創(chuàng)建一個表 Query OK, 0 rows affected (0.01 sec) mysql> insert into test values(1); // 插入數(shù)據(jù) Query OK, 1 row affected (0.04 sec) mysql> select * from test; // 查詢數(shù)據(jù) +------+ | age | +------+ | 1 | +------+
在從服務(wù)器上驗證
mysql> select * from smqnz.test; +------+ | age | +------+ | 1 | +------+ 1 row in set (0.00 sec)
總結(jié)
本文介紹了如何在MySQL中配置單主復(fù)制的GTID模式,包括主服務(wù)器和從服務(wù)器的配置步驟、創(chuàng)建復(fù)制用戶及測試主從復(fù)制的過程,以實現(xiàn)高可用性和數(shù)據(jù)冗余。
到此這篇關(guān)于MySQL(基于GTID方式)實現(xiàn)主從復(fù)制和單主復(fù)制詳細教程的文章就介紹到這了,更多相關(guān)MySQL GTID單主復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫卸載以及刪除所有有關(guān)信息詳細步驟
在MySQL中數(shù)據(jù)刪除操作不僅僅是簡單地將某一個或多個行刪除,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫卸載以及刪除所有有關(guān)信息的詳細步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-06-06MySQL中的LOCATE和POSITION函數(shù)使用方法
不常用:MySQL中的LOCATE和POSITION函數(shù)2010-02-02在Centos7中利用Shell腳本實現(xiàn)MySQL數(shù)據(jù)備份
備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分數(shù)據(jù)集合從應(yīng)用主機的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程,本文將給大家介紹了在Centos7中利用Shell腳本實現(xiàn)MySQL數(shù)據(jù)備份,文中有詳細的圖文介紹,需要的朋友可以參考下2023-12-12MySQL 主從同步,事務(wù)回滾的實現(xiàn)原理
這篇文章主要介紹了MySQL 主從同步,事務(wù)回滾的實現(xiàn)原理,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下2020-12-12從ibd文件恢復(fù)MySQL數(shù)據(jù)的操作步驟及常見錯誤
MySQL數(shù)據(jù)恢復(fù)是數(shù)據(jù)庫管理中的一項重要任務(wù),尤其是在遭遇意外數(shù)據(jù)丟失、硬件故障或軟件錯誤時,下面這篇文章主要給大家介紹了關(guān)于從ibd文件恢復(fù)MySQL數(shù)據(jù)的操作步驟及常見錯誤,需要的朋友可以參考下2024-08-08