欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL雙主配置的項目實踐

 更新時間:2024年12月10日 10:00:14   作者:熱干面先拌拌  
本文詳細介紹了配置兩臺MySQL服務(wù)器之間的主從復(fù)制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、配置的前置條件

  • 已知A服務(wù)器IP=192.168.0.11,B服務(wù)器IP=192.168.0.12
  • 建議使用相同版本的MySQL,若是小版本跨越一般是兼容的,如A的MySQL版本是5.7.1,B的MySQL版本是5.7.2;
  • 配置前需要保證兩個數(shù)據(jù)庫的數(shù)據(jù)一致,建議將A數(shù)據(jù)庫同步到B數(shù)據(jù)庫,以保證配置前A、B兩臺數(shù)據(jù)庫的數(shù)據(jù)是一致的;
  • 確保2臺數(shù)據(jù)庫的網(wǎng)絡(luò)端口是互通的,如:3306;
  • 配置期間不能有新數(shù)據(jù)的寫入;

2、配置 

2.1 配置B服務(wù)器MySQL同步A服務(wù)器MySQL數(shù)據(jù)

2.1.1  修改A服務(wù)器的MySQL配置文件my.cnf,添加以下內(nèi)容

[mysqld]
#master A slave config
#主機A的server id,需要和主機B的不一致
server-id=1
#二進制日志文件名
log-bin=master-a-bin
#二進制日志格式
binlog-format=ROW
#設(shè)置日志最大為1G
max_binlog_size=1024M
#設(shè)置binlog文件最大保留天數(shù)30天
expire_logs_days=30
#數(shù)據(jù)庫宕機恢復(fù)后,自動同步缺少的數(shù)據(jù)
relay_log=mysql-relay-bin
relay_log_recovery=1
#設(shè)置自增id的初始值為1,每次增量為2
auto_increment_offset=1
auto_increment_increment=2
#開啟gtid
gtid_mode=ON
enforce_gtid_consistency=1
#需要同步的數(shù)據(jù)庫,如test1,test2,根據(jù)實際情況配置
binlog-do-db=test1
binlog-do-db=test2
#不要同步的數(shù)據(jù)庫
binlog-ignore-db=mysql,information_schema,performance_schema,sys
#不要同步的表
#replicate-ignore-table=庫名.表名

配置完成后,保存并重啟一下MySQL

2.1.2 登錄A服務(wù)器MySQL,創(chuàng)建B的數(shù)據(jù)同步賬號

同步賬號:repl_b,同步密碼:123456,具體命令步驟如下

mysql> grant replication slave on *.* to '同步賬號'@'主機B的IP' identified by '同步密碼';
#登錄A服務(wù)器MySQL,創(chuàng)建B的數(shù)據(jù)同步賬號
mysql> flush privileges;
#刷新權(quán)限
mysql> reset master;
#重置master信息
#說明:同步開始前,不要有數(shù)據(jù)寫入,否則影響bin-log日志文件
mysql> flush tables with read lock;
#鎖表命令,在同步配置完成后再使用解鎖表命令:unlock tables;
mysql> show master status;
#查看并記錄好當前bin-log的文件名和位置,記錄bing-log文件名:master-a-bin.000001,日志位置:154

2.1.3 登錄B服務(wù)器修改MySQL的配置文件my.cnf,設(shè)置A為B的master,添加以下

#master B slave config
#主機B的server id,與主機A的id不一致
server-id=2
#二進制日志文件名
log-bin=master-b-bin
#二進制日志格式
binlog-format=ROW
#設(shè)置日志最大為1G
max_binlog_size=1024M
#設(shè)置binlog文件最大保留天數(shù)30天
expire_logs_days=30
#數(shù)據(jù)庫宕機恢復(fù)后,自動同步缺少的數(shù)據(jù)
relay_log=mysql-relay-bin
relay_log_recovery=1
#設(shè)置自增id的初始值為1,每次增量為2
auto_increment_offset=2
auto_increment_increment=2
#開啟gtid
gtid_mode=ON
enforce_gtid_consistency=1
#需要同步的數(shù)據(jù)庫,如test1,test2,根據(jù)實際情況配置
binlog-do-db=test1
binlog-do-db=test2
#不要同步的數(shù)據(jù)庫
binlog-ignore-db=mysql,information_schema,performance_schema,sys
#不要同步的表 
#replicate-ignore-table=庫名.表名

配置完成后,保存并重啟以下MySQL 

登錄主機B的MySQL,設(shè)置A為B的master

PS:如果開啟了全局事務(wù)id(gtid_mode=ON),那么可以不用指定master_log_pos參數(shù),可去掉此參數(shù)

#備份好需要同步的數(shù)據(jù)庫,把備份好的數(shù)據(jù)庫導(dǎo)入到主機B上
#登錄主機B的mysql,設(shè)置A為B的master
#停止B的slave
mysql> stop slave;
#設(shè)置B的master的為A,通過repl_b同步A的數(shù)據(jù)
mysql> change master to master_host='主機A的IP',master_user='同步賬號',master_password='同步密碼',master_log_file='bing-log文件名',master_log_pos=日志位置;
#開啟B的slave
mysql> start slave;
#確定B的slave是否同步成功
mysql> show slave status\G;
#查看輸出結(jié)果中Slave_IO_Running和Slave_SQL_Running都為YES時,表示成功

到這步已經(jīng)完成了B服務(wù)器MySQL同步A服務(wù)器數(shù)據(jù),下面再進行設(shè)置A同步B服務(wù)器的MySQL

2.2 配置A服務(wù)器MySQL同步B服務(wù)器MySQL數(shù)據(jù)

2.2.1 登錄B服務(wù)器的MySQL,創(chuàng)建A服務(wù)器的MySQL同步賬號,同步賬號:repl_a,密碼:123456

#登錄B的mysql
mysql> grant replication slave on *.* to '同步賬號'@'主機A的IP' identified by '同步密碼';
mysql> flush privileges;
#說明:同步開始前,建議不要有數(shù)據(jù)寫入,否則影響bin-log日志文件
#重置master信息
mysql> reset master;
#鎖表命令,同步完成后使用解鎖表命令:unlock tables
mysql> flush tables with read lock;
#查看并記錄好當前bin-log的文件名和位置,記錄bing-log文件名:master-b-bin.000001,日志位置:154
mysql> show master status;

2.2.2、登錄A服務(wù)器MySQL,設(shè)置B為A的master

#登錄A主機,停止slave
mysql> stop slave;
#設(shè)置A的master為B
mysql> change master to master_host='主機B的IP',master_user='同步賬號',master_password='同步密碼',master_log_file='master-b-mysql-bin.000001',master_log_pos=154;
#啟動slave
mysql> start slave;
mysql> show slave status\G;
#查看輸出結(jié)果中Slave_IO_Running和Slave_SQL_Running都為YES時,表示成功

3、解鎖數(shù)據(jù)庫表的鎖定

在A服務(wù)器和B服務(wù)器的MySQL里面執(zhí)行解鎖命令:unlock tables

mysql> unlock tables;

4、進行數(shù)據(jù)庫的讀寫同步測試

在A更改(插入、修改、刪除)的數(shù)據(jù)會實時同步至B的數(shù)據(jù)庫,同樣B更改數(shù)據(jù)也會實時同步至A

到此這篇關(guān)于MySQL雙主配置的項目實踐的文章就介紹到這了,更多相關(guān)MySQL雙主配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫改名的三種實現(xiàn)方式

    MySQL數(shù)據(jù)庫改名的三種實現(xiàn)方式

    這篇文章主要介紹了MySQL數(shù)據(jù)庫改名的三種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 利用ssh tunnel鏈接mysql服務(wù)器的方法

    利用ssh tunnel鏈接mysql服務(wù)器的方法

    這篇文章主要給大家介紹了利用ssh tunnel鏈接mysql服務(wù)器的方法,文中介紹的很詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • MySQL中Case?When用法及說明

    MySQL中Case?When用法及說明

    這篇文章主要介紹了MySQL中Case?When用法及說明,具有很好的參考價值,希望對大家有所幫助。
    2022-12-12
  • 淺談mysql的timestamp存在的時區(qū)問題

    淺談mysql的timestamp存在的時區(qū)問題

    本文主要介紹了淺談mysql的timestamp存在的時區(qū)問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • mysql視圖之管理視圖實例詳解【增刪改查操作】

    mysql視圖之管理視圖實例詳解【增刪改查操作】

    這篇文章主要介紹了mysql視圖之管理視圖,結(jié)合實例形式詳細分析了mysql視圖增刪改查操作具體實現(xiàn)技巧與相關(guān)操作注意事項,需要的朋友可以參考下
    2019-12-12
  • MySQL5.7.21解壓版安裝詳細教程圖解

    MySQL5.7.21解壓版安裝詳細教程圖解

    對于小編來說安裝系統(tǒng)軟件是常干的事情,今天小編抽空給大家整理了MySQL5.7.21解壓版安裝詳細教程圖解,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • mysql的union和union all用法詳解

    mysql的union和union all用法詳解

    union 和 union all 的區(qū)別是,union 會自動壓縮多個結(jié)果集合中的重復(fù)結(jié)果,而 union all 則將所有的結(jié)果全部顯示出來,不管是不是重復(fù),本文給大家介紹mysql的union和union all用法,感興趣的朋友一起看看吧
    2023-08-08
  • 解決Can''t locate ExtUtils/MakeMaker.pm in @INC報錯

    解決Can''t locate ExtUtils/MakeMaker.pm in @INC報錯

    今天小編就為大家分享一篇關(guān)于解決Can't locate ExtUtils/MakeMaker.pm in @INC報錯,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Redis與MySQL的雙寫一致性問題

    Redis與MySQL的雙寫一致性問題

    這篇文章只要介紹了Redis與MySQL雙寫一致性,主要是指在使用緩存和數(shù)據(jù)庫同時存儲數(shù)據(jù)的場景下( 主要是存在高并發(fā)的情況),如何保證兩者的數(shù)據(jù)一致性(內(nèi)容相同或者盡可能接近),感興趣的同學(xué)可以借鑒一下
    2023-03-03
  • 分享MYSQL插入數(shù)據(jù)時忽略重復(fù)數(shù)據(jù)的方法

    分享MYSQL插入數(shù)據(jù)時忽略重復(fù)數(shù)據(jù)的方法

    當程序中insert時,已存在的數(shù)據(jù)不插入,不存在的數(shù)據(jù)insert。在網(wǎng)上搜了下,可以使用存儲過程或者是用NOT EXISTS 來判斷是否存在
    2013-09-09

最新評論