Windows環(huán)境下從零開始驗證MariaDB/MySQL的主從同步

MySQL/MariaDB數(shù)據(jù)庫基于binlog的主從同步筹淫,應(yīng)該可以說是一個爛大街的技術(shù)了想际。網(wǎng)上的介紹文章比比皆是皱炉,但大都以Docker為主怀估。
由于本人對Docker不熟悉,所以選擇在Windows環(huán)境里驗證了一下MariaDB的主從同步(基于binlog)合搅,過程雖略有波折多搀,但結(jié)果符合預(yù)期。

為了給這次在Windows環(huán)境下從零開始驗證數(shù)據(jù)庫(MariaDB/MySQL)主從同步的過程留個記錄灾部,也希望能幫到既想了解數(shù)據(jù)庫主從同步康铭,但對Docker操作不甚熟悉的朋友。

前言說完赌髓,進主題从藤。

0.準備工作
? ?a)本地安裝好MariaDB數(shù)據(jù)庫(我裝的是MariaDB10.3.8)催跪,以下簡稱MasterDB,確保MasterDB處于啟動狀態(tài)
? ?b)本地安裝好數(shù)據(jù)庫工具(我裝的是HeidiSQL12.4)呛哟,以下簡稱Heidi
? ?c)用Heidi登錄數(shù)據(jù)庫叠荠,并新建一個database:testdb
? ?d)新建一張表:tb9,參考如下:
? ? ? ? ?create table `tb9`(t9a varchar(100),?t9b varchar(50),?dt9 date default '2021-10-12',?ts9 timestamp default current_timestamp(),?t9d varchar(50),?PRIMARY KEY (`t9a`,`t9b`) USING BTREE);

1.MasterDB打開binlog
? ?找到MariaDB安裝目錄下的data文件夾下的my.ini文件扫责,做好文件備份后榛鼎,在[mysqld]塊的最后追加以下內(nèi)容:
? ?server-id=11
? ?log-bin=mysql-bin
? ?log_basename=master01
? ?max-binlog-size=1G
? ?expire_logs_days=99
? ?binlog_format=row

? ?注意:server-id是用來唯一標識主從(Master/Slave)數(shù)據(jù)庫的,所以不能重復(fù)鳖孤;binlog_format:請到網(wǎng)上查找相關(guān)說明者娱。

my.ini

2.MasterDB重新啟動并確認binlog正常
? ?
往tb9表里插入數(shù)據(jù),查看MariaDB安裝目錄下的data目錄苏揣,確認binlog已經(jīng)打開:

binlog:每次DB啟動會生成一個新的master01-bin.xxxxxx文件

3.創(chuàng)建SlaveDB實例
? ?既然是數(shù)據(jù)庫同步黄鳍,就必然涉及2個甚至更多獨立的數(shù)據(jù)庫實例。網(wǎng)上的教程多通過Docker來實現(xiàn)平匈。前言中提到為了簡化框沟,想在Windows環(huán)境中驗證(不懂Docker有點丟人了)。
? ?復(fù)制MariaDB的data目錄到一個新目錄增炭,比如data4slave(注意testdb目錄不要拷貝忍燥,本次只涉及數(shù)據(jù)同步,建表同步不在范圍內(nèi)):

復(fù)制data目錄到data4slave

? ? 修改data4slave目錄下的my.ini隙姿,為了方便區(qū)分梅垄,文件名改成:myslave.ini:

my4slave.ini:前三個紅框的內(nèi)容必須改,最后一個隨意

? ? 注冊SlaveDB為Windows的Service:
? ? 用管理員身份打開cmd.exe输玷,執(zhí)行以下命令:"D:\Software\MariaDB 10.3\bin\mysqld.exe" --install mariadb4slave --defaults-file="D:\Software\MariaDB 10.3\data4slave\myslave.ini"
? ? 用services.msc查看:

注冊Service成功后如上圖所示

4.SlaveDB配置
? ?
新起一個Heidi队丝,連上SlaveDB,然后新建和MasterDB一模一樣的Database和表:testdb欲鹏,tb9

5.開啟同步
? ?5.1.MasterDB:創(chuàng)建同步用的賬號(并配置權(quán)限):
? ? ? ? ?CREATE USER 'replication_user'@'%' IDENTIFIED BY 'replication';
? ? ? ? ?GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
? ?5.2.MasterDB:執(zhí)行SQL取得同步用信息:
? ? ? ? ?SHOW MASTER STATUS;

下方紅框的2個字段(File和Position)會在后面用到

? ?5.3.SlaveDB:執(zhí)行SQL語句机久,指定MasterDB:
? ? ? ? ?CHANGE MASTER TO
? ? ? ? ? ? ? MASTER_HOST='localhost',
? ? ? ? ? ? ? MASTER_USER='replication_user',
? ? ? ? ? ? ? MASTER_PASSWORD='replication',
? ? ? ? ? ? ? MASTER_PORT=3308,
? ? ? ? ? ? ? MASTER_LOG_FILE='master01-bin.000003',
? ? ? ? ? ? ? MASTER_LOG_POS=345,
? ? ? ? ? ? ? MASTER_CONNECT_RETRY=10;
? ? ? ? 基本上每個值的含義都很清楚,就是MasterDB相關(guān)的信息赔嚎,包括所在位置吞加,端口,賬號尽狠,密碼,同步binlog文件名和同步位置及同步連接失敗重試次數(shù)

? ?5.4.SlaveDB:開啟同步
? ? ? ? ?執(zhí)行:START SLAVE;
? ? ? ? ?查看同步狀態(tài):SHOW SLAVE STATUS;

下方紅框的狀態(tài)說明同步的狀態(tài)是正常的

6.數(shù)據(jù)同步的驗證
? ?
在Master數(shù)據(jù)庫中往tb9里面insert/update/delete數(shù)據(jù)叶圃,每次操作后都到SlaveDB里面確認數(shù)據(jù)是否正確同步了袄膏。
? ?至此在Windows環(huán)境下檢證MariaDB/MySQL數(shù)據(jù)庫的主從同步驗證算是大功告成。

7.收尾清理
? ?7.1.停止SlaveDB的service
? ?7.2.刪除SlaveDB的service:
? ? ? ? ?用管理員身份打開cmd.exe掺冠,執(zhí)行以下命令:"D:\Software\MariaDB 10.3\bin\mysqld.exe" --remove mariadb4slave

刪除SlaveDB服務(wù)

? ?7.3.刪除SlaveDB的data目錄:本文中是data4slave目錄

8.最后
? ?
本次檢證把包括testdb在內(nèi)的所有的數(shù)據(jù)庫實例都作為同步的對象了沉馆,而生產(chǎn)環(huán)境中可以設(shè)置僅僅對有需要的數(shù)據(jù)庫做同步:
? ?MasterDB:binlog_do_db码党,binlog_ignore_db:設(shè)置哪些數(shù)據(jù)庫要開啟binlog
? ?SlaveDB:replicate_do_db,replicate_ignore_db:設(shè)置哪些數(shù)據(jù)庫要從主數(shù)據(jù)庫(MasterDB)同步數(shù)據(jù)
? ?比如可以設(shè)置為:主數(shù)據(jù)庫(MasterDB)對testdb1,testdb2開啟binlog斥黑,從數(shù)據(jù)庫(SlaveDB1)同步testdb1揖盘,而另一個從數(shù)據(jù)庫(SlaveDB2)同步testdb2。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锌奴,一起剝皮案震驚了整個濱河市兽狭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹿蜀,老刑警劉巖箕慧,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茴恰,居然都是意外死亡颠焦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門往枣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伐庭,“玉大人,你說我怎么就攤上這事分冈』恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵丈秩,是天一觀的道長盯捌。 經(jīng)常有香客問我,道長蘑秽,這世上最難降的妖魔是什么饺著? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮肠牲,結(jié)果婚禮上幼衰,老公的妹妹穿的比我還像新娘。我一直安慰自己缀雳,他們只是感情好渡嚣,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肥印,像睡著了一般识椰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上深碱,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天腹鹉,我揣著相機與錄音,去河邊找鬼敷硅。 笑死功咒,一個胖子當著我的面吹牛愉阎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播力奋,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼榜旦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了景殷?” 一聲冷哼從身側(cè)響起溅呢,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滨彻,沒想到半個月后藕届,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡亭饵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年休偶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜羊。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡踏兜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出八秃,到底是詐尸還是另有隱情碱妆,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布昔驱,位于F島的核電站疹尾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏骤肛。R本人自食惡果不足惜纳本,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腋颠。 院中可真熱鬧繁成,春花似錦、人聲如沸淑玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽絮蒿。三九已至尊搬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間土涝,已是汗流浹背毁嗦。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留回铛,地道東北人狗准。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像茵肃,于是被迫代替她去往敵國和親腔长。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容