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

MySQL一主一從搭建詳細(xì)講解(附圖文)

 更新時(shí)間:2026年02月09日 08:55:29   作者:小張技術(shù)窩  
MySQL主從配置是一種實(shí)用的數(shù)據(jù)庫(kù)架構(gòu),主服務(wù)器處理寫入操作,從服務(wù)器負(fù)責(zé)只讀操作,能提升性能、加強(qiáng)冗余、擴(kuò)展可讀性,這篇文章主要介紹了MySQL一主一從搭建的相關(guān)資料,需要的朋友可以參考下

1 概述

主從復(fù)制是指將主數(shù)據(jù)庫(kù)的 DDL 和 DML 操作通過(guò)二進(jìn)制日志傳到從庫(kù)服務(wù)器中,然后在從庫(kù)上對(duì)這 些日志重新執(zhí)行(也叫重做),從而使得從庫(kù)和主庫(kù)的數(shù)據(jù)保持同步。

MySQL支持一臺(tái)主庫(kù)同時(shí)向多臺(tái)從庫(kù)進(jìn)行復(fù)制, 從庫(kù)同時(shí)也可以作為其他從服務(wù)器的主庫(kù),實(shí)現(xiàn)鏈狀 復(fù)制。

MySQL 復(fù)制的優(yōu)點(diǎn)主要包含以下三個(gè)方面:

  • 主庫(kù)出現(xiàn)問(wèn)題,可以快速切換到從庫(kù)提供服務(wù)。
  • 實(shí)現(xiàn)讀寫分離,降低主庫(kù)的訪問(wèn)壓力。
  • 可以在從庫(kù)中執(zhí)行備份,以避免備份期間影響主庫(kù)服務(wù)。

2 原理

MySQL主從復(fù)制的核心就是 二進(jìn)制日志,具體的過(guò)程如下:

從上圖來(lái)看,復(fù)制分成三步:

  1. Master 主庫(kù)在事務(wù)提交時(shí),會(huì)把數(shù)據(jù)變更記錄在二進(jìn)制日志文件 Binlog 中。
  2. 從庫(kù)讀取主庫(kù)的二進(jìn)制日志文件 Binlog ,寫入到從庫(kù)的中繼日志 Relay Log 。
  3. slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。

3 搭建

3.1 準(zhǔn)備

關(guān)閉兩臺(tái)服務(wù)器的防火墻

systemctl stop firewalld
systemctl disable firewalld

如果不想關(guān)閉防火墻開放MySQL的端口

firewall-cmd --zone=public --add-port=3306/tcp-permanent
firewall-cmd --reload

準(zhǔn)備好兩臺(tái)服務(wù)器之后,在上述的兩臺(tái)服務(wù)器中分別安裝好MySQL,并完成基礎(chǔ)的初始化準(zhǔn)備(安裝、 密碼配置等操作)工作。 其中:

  • 192.168.116.129 作為主機(jī)
  • 192.168.116.128 作為從機(jī)

3.2 主庫(kù)配置

① 修改配置文件 /etc/my.cnf

#mysql 服務(wù)ID,保證整個(gè)集群環(huán)境中唯一,取值范圍:1 – 232-1,默認(rèn)為1
server-id=1
#是否只讀,1 代表只讀, 0 代表讀寫
read-only=0
#忽略的數(shù)據(jù), 指不需要同步的數(shù)據(jù)庫(kù)
#binlog-ignore-db=mysql
#指定同步的數(shù)據(jù)庫(kù)
#binlog-do-db=db01

② 重啟MySQL服務(wù)器

systemctl restart mysqld

③ 登錄mysql,創(chuàng)建遠(yuǎn)程連接的賬號(hào),并授予主從復(fù)制權(quán)限

#創(chuàng)建itcast用戶,并設(shè)置密碼,該用戶可在任意主機(jī)連接該MySQL服務(wù)
create user 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Itcast@123456';
#為 'itcast'@'%' 用戶分配主從復(fù)制權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

④ 通過(guò)指令,查看二進(jìn)制日志坐標(biāo)

show master status;

字段含義說(shuō)明:

  • file : 從哪個(gè)日志文件開始推送日志文件
  • position : 從哪個(gè)位置開始推送日志
  • binlog_ignore_db : 指定不需要同步的數(shù)據(jù)庫(kù)

3.3 從庫(kù)配置

① 修改配置文件 /etc/my.cnf

#mysql 服務(wù)ID,保證整個(gè)集群環(huán)境中唯一,取值范圍:1 – 2^32-1,和主庫(kù)不一樣即可
server-id=2
#是否只讀,1 代表只讀, 0 代表讀寫
read-only=1

② 重新啟動(dòng)MySQL服務(wù)

systemctl restart mysqld

③ 登錄mysql,設(shè)置主庫(kù)配置

SOURCE_LOG_FILE和SOURCE_LOG_POS設(shè)置的是主庫(kù)中剛才查詢出來(lái)的

 CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.116.129', SOURCE_USER='itcast', 
SOURCE_PASSWORD='Itcast@123456', SOURCE_LOG_FILE='binlog.000006', 
SOURCE_LOG_POS=370;

上述是8.0.23中的語(yǔ)法。如果mysql是 8.0.23 之前的版本,執(zhí)行如下SQL:

CHANGE MASTER TO MASTER_HOST='192.168.116.129', MASTER_USER='itcast', 
MASTER_PASSWORD='Itcast@123456', MASTER_LOG_FILE='binlog.000006', 
MASTER_LOG_POS=370;
參數(shù)名含義8.0.23之前
SOURCE_HOST主庫(kù)IP地址MASTER_HOST
SOURCE_USER連接主庫(kù)的用戶名MASTER_USER
SOURCE_PASSWORD連接主庫(kù)的密碼MASTER_PASSWORD
SOURCE_LOG_FILEbinlog日志文件名MASTER_LOG_FILE
SOURCE_LOG_POSbinlog日志文件位置MASTER_LOG_POS

④ 開啟同步操作

start replica ; #8.0.22之后
start  slave ;  #8.0.22之前

⑤ 查看主從同步狀態(tài)

show replica  status ;  #8.0.22之后
show  slave  status ;   #8.0.22之前

Replica_IO_Running: Yes和Replica_SQL_Running: Yes說(shuō)明配置成功

3.4 測(cè)試

① 在主庫(kù) 192.168.116.129 上創(chuàng)建數(shù)據(jù)庫(kù)、表,并插入數(shù)據(jù)

 create database itdemo3;
 use itdemo3;
 create table tb_user(
 id int(11) primary key not null auto_increment,
 name varchar(50) not null,
 sex varchar(1)
 );
  insert into tb_user(id,name,sex) values(null,'Tom', '1'),(null,'Trigger','0'),
 (null,'Dawn','1');

② 在從庫(kù) 192.168.116.128 中查詢數(shù)據(jù),驗(yàn)證主從是否同步

可以從下邊的圖片可以看到主庫(kù)中創(chuàng)建的數(shù)據(jù)庫(kù)、創(chuàng)建的表、插入的數(shù)據(jù)已經(jīng)成功同步到從庫(kù)中

3.5 關(guān)閉主從

如果后續(xù)要關(guān)閉主從架構(gòu),只需要在從節(jié)點(diǎn)上MySQ客戶端中執(zhí)行如下:

STOP SLAVE;
RESET SLAVE ALL;

并修改MySQL的配置文件刪除server-id和read-only,然后重啟MySQL

總結(jié)

到此這篇關(guān)于MySQL一主一從搭建的文章就介紹到這了,更多相關(guān)MySQL一主一從搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql實(shí)戰(zhàn)練習(xí)之簡(jiǎn)單圖書管理系統(tǒng)

    Mysql實(shí)戰(zhàn)練習(xí)之簡(jiǎn)單圖書管理系統(tǒng)

    由于課設(shè)需要做這個(gè),于是就抽了點(diǎn)閑余時(shí)間,寫了下,用Mysql與Java,基本全部都涉及到,包括借書/還書,以及書籍信息的更新,查看所有的書籍。需要的朋友可以參考下
    2021-09-09
  • mysql如何將sql查詢的結(jié)果以百分比展示出來(lái)

    mysql如何將sql查詢的結(jié)果以百分比展示出來(lái)

    這篇文章主要給大家介紹了關(guān)于mysql如何將sql查詢的結(jié)果以百分比展示出來(lái)的相關(guān)資料,用到了MySQL字符串處理中的兩個(gè)函數(shù)concat()和left()實(shí)現(xiàn)查詢結(jié)果以百分比顯示,需要的朋友可以參考下
    2023-08-08
  • Mysql:The user specified as a definer (''xxx@''%'') does not exist的解決方案

    Mysql:The user specified as a definer (''xxx@''%'') does not

    今天小編就為大家分享一篇關(guān)于Mysql:The user specified as a definer ('xxx@'%') does not exist的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • MySQL中獲取最大值MAX()函數(shù)和ORDER BY … LIMIT 1比較

    MySQL中獲取最大值MAX()函數(shù)和ORDER BY … LIMIT 1比較

    mysql取最大值的的是max 和order by兩種方式,同時(shí)也大多數(shù)人人為max的效率更高,在本文中,我們將介紹MySQL中MAX()和ORDER BY … LIMIT 1兩種獲取最大值的方法以及它們性能上的差異,同時(shí)我們將探討這種性能差異的原因,并提供一些優(yōu)化建議
    2024-03-03
  • 基于unique與primary約束的區(qū)別分析

    基于unique與primary約束的區(qū)別分析

    本篇文章介紹了unique與primary約束的區(qū)別分析。需要的朋友參考下
    2013-04-04
  • 教你如何讓spark?sql寫mysql的時(shí)候支持update操作

    教你如何讓spark?sql寫mysql的時(shí)候支持update操作

    spark提供了一個(gè)枚舉類,用來(lái)支撐對(duì)接數(shù)據(jù)源的操作模式,本文重點(diǎn)給大家介紹如何讓spark?sql寫mysql的時(shí)候支持update操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-02-02
  • MYSQL表分區(qū)的實(shí)現(xiàn)示例

    MYSQL表分區(qū)的實(shí)現(xiàn)示例

    表分區(qū)是將表中的數(shù)據(jù)按照某種規(guī)則分散存儲(chǔ)到多個(gè)分區(qū)中,每個(gè)分區(qū)可以獨(dú)立地進(jìn)行操作,例如查詢、插入、更新和刪除,下面就來(lái)介紹一下MYSQL表分區(qū)的實(shí)現(xiàn)
    2025-09-09
  • MySQL數(shù)據(jù)庫(kù)中sql表設(shè)計(jì)的注意事項(xiàng)

    MySQL數(shù)據(jù)庫(kù)中sql表設(shè)計(jì)的注意事項(xiàng)

    實(shí)際開發(fā)中一個(gè)項(xiàng)目通常需要很多張表才能完成,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)中sql表設(shè)計(jì)的注意事項(xiàng),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • MySQL錯(cuò)誤:You can‘t specify target table ‘xxx‘ for update in FROM clause的解決方案

    MySQL錯(cuò)誤:You can‘t specify target table&n

    在編寫MySQL的UPDATE或DELETE語(yǔ)句時(shí),如果子查詢中直接引用了要操作的目標(biāo)表,可能會(huì)遇到一個(gè)常見(jiàn)的錯(cuò)誤:You can’t specify target table ‘xxx’ for update in FROM clause,這個(gè)錯(cuò)誤讓許多開發(fā)者感到困惑,本文將深入分析其原因,并提供多種解決方案,
    2025-02-02
  • windows下mysql 8.0.16 安裝配置方法圖文教程

    windows下mysql 8.0.16 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

宝兴县| 达拉特旗| 万山特区| 安陆市| 射阳县| 永顺县| 手机| 东宁县| 邢台县| 荆州市| 修武县| 长治县| 隆林| 思南县| 诸城市| 游戏| 运城市| 临夏市| 东兰县| 滦南县| 凯里市| 阿尔山市| 阳新县| 梁河县| 松潘县| 呼玛县| 静宁县| 新绛县| 四子王旗| 柏乡县| 杂多县| 宁夏| 江川县| 张家口市| 仁化县| 丰台区| 广饶县| 壤塘县| 黄石市| 镇宁| 安塞县|