最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows環(huán)境下MySQL主從復(fù)制搭建全步驟(超詳細(xì)實(shí)操版)

 更新時(shí)間:2026年02月09日 09:25:22   作者:Leo?July  
MySQL支持主數(shù)據(jù)庫與從數(shù)據(jù)配置,采用此配置的數(shù)據(jù)庫,MySQL會自動將主數(shù)據(jù)庫中的數(shù)據(jù)同步到從數(shù)據(jù)庫中,這篇文章主要介紹了Windows環(huán)境下MySQL主從復(fù)制搭建詳細(xì)實(shí)操的相關(guān)資料,需要的朋友可以參考下

前言:

MySQL主從復(fù)制是數(shù)據(jù)庫高可用、讀寫分離架構(gòu)的基礎(chǔ),核心作用是實(shí)現(xiàn)主庫數(shù)據(jù)的實(shí)時(shí)同步,保障數(shù)據(jù)備份與服務(wù)容錯。本文針對Windows環(huán)境(Win10/Win11),從環(huán)境準(zhǔn)備到測試驗(yàn)證,完整拆解主從復(fù)制的搭建流程,同時(shí)梳理常見問題排查方案,適合數(shù)據(jù)庫初學(xué)者或需要快速落地部署的開發(fā)人員。

本文測試環(huán)境:
系統(tǒng):Windows 10 專業(yè)版
MySQL版本:8.0.36(主從庫版本需一致,避免兼容性問題)
架構(gòu):1主1從(單主多從架構(gòu)可復(fù)用此步驟擴(kuò)展)

一、環(huán)境準(zhǔn)備

1.1 核心前提

  • 兩臺Windows主機(jī)(或一臺主機(jī)通過多實(shí)例部署,新手推薦兩臺物理機(jī)/虛擬機(jī),降低配置難度),確保網(wǎng)絡(luò)互通(可通過ping命令測試)。

  • 主從機(jī)均安裝相同版本的MySQL(推薦8.0+,5.7版本步驟類似,配置項(xiàng)略有差異)。

  • 關(guān)閉防火墻或開放MySQL默認(rèn)端口3306(避免端口攔截導(dǎo)致同步失敗)。

1.2 主機(jī)規(guī)劃

角色IP地址MySQL端口
主庫(Master)192.168.1.1003306
從庫(Slave)192.168.1.1013306

二、主庫(Master)配置

2.1 找到MySQL配置文件

MySQL在Windows環(huán)境下的配置文件默認(rèn)是 my.ini,位置通常在:

  • 安裝目錄下(如:D:\Program Files\MySQL\MySQL Server 8.0\my.ini)
  • 若未找到,可通過“服務(wù)”查看MySQL服務(wù)的可執(zhí)行路徑,找到對應(yīng)配置文件(右鍵MySQL服務(wù)→屬性→可執(zhí)行文件路徑)。

2.2 修改主庫my.ini配置

在[mysqld]節(jié)點(diǎn)下添加/修改以下配置(注意:配置項(xiàng)需頂格寫,不能有空格前綴):

# 主庫唯一標(biāo)識(必須為1-2^32-1的整數(shù),主從庫不能重復(fù))
server-id=1
# 開啟二進(jìn)制日志(主從復(fù)制的核心,記錄所有數(shù)據(jù)變更操作)
log-bin=mysql-bin
# 二進(jìn)制日志格式(推薦ROW模式,只記錄數(shù)據(jù)行變更,避免SQL模式的兼容性問題)
binlog-format=ROW
# 需要同步的數(shù)據(jù)庫(可指定多個(gè),用逗號分隔;不指定則同步所有庫,除了忽略的庫)
binlog-do-db=test_db
# 不需要同步的數(shù)據(jù)庫(系統(tǒng)庫必須忽略,避免權(quán)限問題)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 二進(jìn)制日志過期時(shí)間(避免日志文件過大,單位:天)
expire_logs_days=7
# 確保每次事務(wù)提交時(shí)都刷新二進(jìn)制日志到磁盤(保證數(shù)據(jù)一致性)
sync-binlog=1

2.3 重啟主庫服務(wù)

配置修改后需重啟MySQL服務(wù)生效,兩種方式:

  1. 圖形化方式:控制面板→管理工具→服務(wù)→找到“MySQL”→右鍵“重啟”。

  2. 命令行方式(管理員權(quán)限打開CMD):
    net stop MySQL(停止服務(wù))
    net start MySQL(啟動服務(wù))

注意:若重啟失敗,大概率是my.ini配置有誤(如語法錯誤、路徑錯誤),需檢查配置文件并修正后重新嘗試。

2.4 主庫創(chuàng)建同步賬號并授權(quán)

從庫需要通過專門的賬號連接主庫進(jìn)行數(shù)據(jù)同步,因此需在主庫創(chuàng)建授權(quán)賬號:

  1. 登錄主庫MySQL(命令行或可視化工具如Navicat):
    mysql -u root -p(輸入root密碼登錄)

  2. 創(chuàng)建同步賬號并授權(quán)(MySQL 8.0+語法):
    CREATE USER 'slave_user'@'%' IDENTIFIED BY 'Slave@123456';(slave_user為用戶名,%表示允許所有IP連接,密碼需符合MySQL密碼策略)
    GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%';(授予復(fù)制權(quán)限)
    FLUSH PRIVILEGES;(刷新權(quán)限生效)

2.5 查看主庫狀態(tài)(關(guān)鍵步驟)

登錄主庫后執(zhí)行以下命令,記錄輸出結(jié)果(后續(xù)配置從庫需用到):

SHOW MASTER STATUS;

輸出示例:

FilePositionBinlog_Do_DBBinlog_Ignore_DB
mysql-bin.000001156test_dbmysql,information_schema,…

關(guān)鍵參數(shù)說明:- File:當(dāng)前二進(jìn)制日志文件名(如mysql-bin.000001)-
Position:當(dāng)前二進(jìn)制日志位置(如156),從庫將從這個(gè)位置開始同步

注意:執(zhí)行完此命令后,不要在主庫執(zhí)行任何寫操作(如插入、更新數(shù)據(jù)),否則Position值會變化,導(dǎo)致后續(xù)同步失敗。

三、從庫(Slave)配置

3.1 修改從庫my.ini配置

同樣找到從庫的my.ini文件,在[mysqld]節(jié)點(diǎn)下添加/修改以下配置:

# 從庫唯一標(biāo)識(必須與主庫不同,如2)
server-id=2
# 開啟中繼日志(從庫通過中繼日志同步主庫數(shù)據(jù),避免直接操作主庫日志)
relay-log=mysql-relay-bin
# 中繼日志格式(與主庫保持一致)
relay-log-format=ROW
# 需要同步的數(shù)據(jù)庫(與主庫binlog-do-db一致)
replicate-do-db=test_db
# 不需要同步的數(shù)據(jù)庫(與主庫一致)
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
# 從庫只讀(避免從庫被誤寫,僅對非super權(quán)限用戶生效)
read-only=1
# 允許super權(quán)限用戶執(zhí)行寫操作(方便后續(xù)維護(hù),如手動同步數(shù)據(jù))
super-read-only=0

3.2 重啟從庫服務(wù)

同主庫重啟方式,確保配置生效。

3.3 配置從庫連接主庫

登錄從庫MySQL,執(zhí)行以下命令配置主從連接(替換為實(shí)際主庫信息):

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',  # 主庫IP地址
MASTER_PORT=3306,             # 主庫MySQL端口
MASTER_USER='slave_user',     # 主庫創(chuàng)建的同步賬號
MASTER_PASSWORD='Slave@123456',# 同步賬號密碼
MASTER_LOG_FILE='mysql-bin.000001',  # 主庫SHOW MASTER STATUS輸出的File值
MASTER_LOG_POS=156;             # 主庫SHOW MASTER STATUS輸出的Position值

注意:若之前配置過主從,需先執(zhí)行STOP SLAVE;RESET SLAVE ALL;清除原有配置,再執(zhí)行上述CHANGE MASTER TO命令。

3.4 啟動從庫同步進(jìn)程

執(zhí)行以下命令啟動從庫同步:

START SLAVE;

3.5 查看從庫同步狀態(tài)(核心驗(yàn)證)

執(zhí)行以下命令查看從庫同步狀態(tài):

SHOW SLAVE STATUS\G;

重點(diǎn)關(guān)注以下兩個(gè)參數(shù)(均為Yes則說明同步配置成功):

  • Slave_IO_Running: Yes:從庫IO線程正常(負(fù)責(zé)連接主庫,讀取主庫二進(jìn)制日志)

  • Slave_SQL_Running: Yes:從庫SQL線程正常(負(fù)責(zé)執(zhí)行中繼日志中的SQL語句,同步數(shù)據(jù))

輸出示例(關(guān)鍵部分):

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 156
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 320

四、主從復(fù)制測試驗(yàn)證

通過在主庫執(zhí)行數(shù)據(jù)操作,驗(yàn)證從庫是否能正常同步:

4.1 主庫操作

# 1. 創(chuàng)建同步數(shù)據(jù)庫(若已存在可跳過)
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
# 2. 創(chuàng)建測試表
CREATE TABLE IF NOT EXISTS user (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT
);
# 3. 插入測試數(shù)據(jù)
INSERT INTO user (name, age) VALUES ('張三', 25), ('李四', 30);

4.2 從庫驗(yàn)證

登錄從庫MySQL,執(zhí)行以下命令查看數(shù)據(jù)是否同步:

USE test_db;
# 查看表結(jié)構(gòu)
DESC user;
# 查看數(shù)據(jù)(應(yīng)與主庫一致)
SELECT * FROM user;

若從庫能查詢到主庫插入的數(shù)據(jù),說明主從復(fù)制搭建成功!

五、常見問題排查

5.1 Slave_IO_Running: No

  • 主庫IP/端口錯誤:檢查CHANGE MASTER TO中的MASTER_HOST和MASTER_PORT是否正確,可通過ping主庫IP、telnet 主庫IP 3306測試網(wǎng)絡(luò)連通性。

  • 同步賬號密碼錯誤:驗(yàn)證slave_user賬號密碼是否正確,可在從庫用mysql -h 主庫IP -u slave_user -p測試登錄。

  • 主庫二進(jìn)制日志文件名/位置錯誤:重新執(zhí)行主庫的SHOW MASTER STATUS,確認(rèn)MASTER_LOG_FILE和MASTER_LOG_POS是否正確,若錯誤需重新執(zhí)行CHANGE MASTER TO命令修正。

  • 主庫防火墻未開放3306端口:在主庫Windows防火墻中添加入站規(guī)則,允許3306端口通行。

5.2 Slave_SQL_Running: No

  • 主從庫數(shù)據(jù)不一致:比如主庫已存在表,從庫無此表,導(dǎo)致同步SQL執(zhí)行失敗。解決:停止從庫同步(STOP SLAVE;),手動在從庫補(bǔ)全缺失的數(shù)據(jù)/表結(jié)構(gòu),然后重新啟動同步(START SLAVE;)。

  • 從庫存在重復(fù)主鍵:主庫插入的數(shù)據(jù)在從庫已存在,導(dǎo)致主鍵沖突。解決:刪除從庫中沖突的數(shù)據(jù),或修正主從數(shù)據(jù)一致性后重啟同步。

  • SQL_MODE不兼容:主從庫SQL_MODE設(shè)置不同,導(dǎo)致某些SQL語句在從庫無法執(zhí)行。解決:統(tǒng)一主從庫的SQL_MODE配置(在my.ini中添加sql_mode=xxx,保持一致)。

5.3 主庫重啟后同步失敗

原因:主庫重啟后,二進(jìn)制日志文件名可能變化(如從mysql-bin.000001變?yōu)閙ysql-bin.000002)。

解決:重新在主庫執(zhí)行SHOW MASTER STATUS,記錄新的File和Position,然后在從庫執(zhí)行STOP SLAVE; → 重新執(zhí)行CHANGE MASTER TO命令(更新MASTER_LOG_FILE和MASTER_LOG_POS)→ START SLAVE;。

六、總結(jié)

Windows環(huán)境下MySQL主從復(fù)制搭建的核心步驟可概括為:

  1. 主從庫配置文件修改(核心是server-id和日志配置);
  2. 主庫創(chuàng)建同步賬號并授權(quán);
  3. 從庫配置主庫信息并啟動同步;
  4. 驗(yàn)證同步狀態(tài)和數(shù)據(jù)一致性。

只要嚴(yán)格遵循步驟,注意主從庫的一致性和網(wǎng)絡(luò)連通性,就能順利完成搭建。若需實(shí)現(xiàn)多從庫架構(gòu),可復(fù)用從庫配置步驟,為每個(gè)從庫分配唯一的server-id即可。

到此這篇關(guān)于Windows環(huán)境下MySQL主從復(fù)制搭建全步驟的文章就介紹到這了,更多相關(guān)MySQL主從復(fù)制搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 圖文并茂地講解Mysql索引(index)

    圖文并茂地講解Mysql索引(index)

    在關(guān)系數(shù)據(jù)庫中,索引是一種單獨(dú)的、物理的數(shù)對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種存儲結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于Mysql索引(index)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Windows 64 位 mysql 5.7以上版本包解壓中沒有data目錄和my-default.ini及服務(wù)無法啟動的快速解決辦法(問題小結(jié))

    Windows 64 位 mysql 5.7以上版本包解壓中沒有data目錄和my-default.ini及服務(wù)無法啟動

    這篇文章主要介紹了Windows 64 位 mysql 5.7以上版本包解壓中沒有data目錄和my-default.ini及服務(wù)無法啟動的快速解決辦法(問題小結(jié)),需要的朋友可以參考下
    2018-03-03
  • 最新版MySQL5.7.19解壓版安裝指南

    最新版MySQL5.7.19解壓版安裝指南

    這篇文章主要介紹了最新版MySQL5.7.19解壓版安裝指南,需要的朋友可以參考下
    2017-08-08
  • mysql解決時(shí)區(qū)相關(guān)問題

    mysql解決時(shí)區(qū)相關(guān)問題

    這篇文章主要介紹了mysql如何解決時(shí)區(qū)相關(guān)問題,本篇文章將從數(shù)據(jù)庫參數(shù)入手,逐步介紹時(shí)區(qū)相關(guān)內(nèi)容。感興趣的朋友可以了解下
    2020-08-08
  • 將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫具體步驟

    將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫具體步驟

    MySQL有多種方法導(dǎo)入多個(gè).sql文件,下面這篇文章主要介紹了將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫的具體步驟,文中將實(shí)現(xiàn)步驟介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 如何快速使用mysqlreplicate搭建MySQL主從

    如何快速使用mysqlreplicate搭建MySQL主從

    mysql-utilities工具集是一個(gè)集中了多種工具的合集,可以理解為是DBA的工具箱,本文介紹利用其中的mysqlreplicate工具來快速搭建MySQL主從環(huán)境。下面和小編一起來看看
    2019-05-05
  • 數(shù)據(jù)庫實(shí)現(xiàn)行列轉(zhuǎn)換(mysql示例)

    數(shù)據(jù)庫實(shí)現(xiàn)行列轉(zhuǎn)換(mysql示例)

    最近突然玩起了sql語句,想著想著便給自己出了一道題目:“行列轉(zhuǎn)換”。起初瞎折騰了不少時(shí)間也上網(wǎng)參考了一些博文,不過大多數(shù)是采用oracle數(shù)據(jù)庫當(dāng)中的一些便捷函數(shù)進(jìn)行處理,比如”pivot”。那么,在Mysql環(huán)境下如何處理?下面通過這篇文章我們來一起看看吧。
    2016-12-12
  • MySQL校對規(guī)則(COLLATION)的具體使用

    MySQL校對規(guī)則(COLLATION)的具體使用

    本文主要介紹了MySQL校對規(guī)則(COLLATION)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • MySQL?存儲引擎概覽(最新推薦)

    MySQL?存儲引擎概覽(最新推薦)

    MySQL?的存儲引擎(Storage?Engine)決定了數(shù)據(jù)如何存儲、索引如何組織、事務(wù)是否支持、鎖的粒度、崩潰恢復(fù)能力等,是數(shù)據(jù)庫性能與可靠性的核心,本文給大家介紹MySQL?存儲引擎概覽,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • MySQL修改數(shù)據(jù)的超詳細(xì)教程

    MySQL修改數(shù)據(jù)的超詳細(xì)教程

    在MySQL中可以使用?UPDATE?語句來修改、更新一個(gè)或多個(gè)表的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL修改數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評論

海安县| 湘乡市| 金阳县| 扎兰屯市| 南丰县| 旬阳县| 陈巴尔虎旗| 寿宁县| 武威市| 道真| 保山市| 旌德县| 辽阳县| 五原县| 肥乡县| 图木舒克市| 双城市| 宝清县| 子长县| 青州市| 凌源市| 高平市| 桂林市| 松潘县| 山东省| 南皮县| 屏南县| 军事| 安岳县| 青冈县| 汽车| 嵊州市| 万源市| 阳原县| 安福县| 达日县| 晋城| 鹰潭市| 巴青县| 保亭| 砀山县|