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

docker實現(xiàn)MySQL的主從復(fù)制

 更新時間:2024年01月07日 11:49:57   作者:我是小水水啊  
在學(xué)習(xí)項目的時候?qū)崿F(xiàn)讀寫分離用到了主從復(fù)制,但是一般要實現(xiàn)的話需要虛擬機(jī)或服務(wù)器非常麻煩,但是docker可以完美解決這一問題,本文主要介紹了docker實現(xiàn)MySQL的主從復(fù)制,感興趣的可以了解一下

什么是主從復(fù)制

MySQL 主從復(fù)制是指數(shù)據(jù)可以從一個MySQL數(shù)據(jù)庫服務(wù)器主節(jié)點復(fù)制到一個或多個從節(jié)點。MySQL 默認(rèn)采用異步復(fù)制方式,這樣從節(jié)點不用一直訪問主服務(wù)器來更新自己的數(shù)據(jù),數(shù)據(jù)的更新可以在遠(yuǎn)程連接上進(jìn)行,從節(jié)點可以復(fù)制主數(shù)據(jù)庫中的所有數(shù)據(jù)庫或者特定的數(shù)據(jù)庫,或者特定的表。

為什么主從復(fù)制

  • 在業(yè)務(wù)復(fù)雜的系統(tǒng)中,有這么一個情景,有一句sql語句需要鎖表,導(dǎo)致暫時不能使用讀的服務(wù),那么就很影響運行中的業(yè)務(wù),使用主從復(fù)制,讓主庫負(fù)責(zé)寫,從庫負(fù)責(zé)讀,這樣,即使主庫出現(xiàn)了鎖表的情景,通過讀從庫也可以保證業(yè)務(wù)的正常運行。
  • 做數(shù)據(jù)的熱備,主庫宕機(jī)后能夠及時替換主庫,保證業(yè)務(wù)可用性。
  • 架構(gòu)的擴(kuò)展。業(yè)務(wù)量越來越大,I/O訪問頻率過高,單機(jī)無法滿足,此時做多庫的存儲,降低磁盤I/O訪問的頻率,提高單個機(jī)器的I/O性能。

搭建步驟

1.拉取鏡像

docker pull mysql:5.7

2.運行主從

docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql  -v /mydata/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root  -d mysql:5.7

在這里插入圖片描述

3.進(jìn)入/mydata/mysql-master/conf目錄下新建my.cnf

在主機(jī)下:

cd  /mydata/mysql-master/conf
vim my.cnf
[mysqld]

## 設(shè)置server_id,同一局域網(wǎng)中需要唯一

server_id=101 

## 指定不需要同步的數(shù)據(jù)庫名稱

binlog-ignore-db=mysql  

## 開啟二進(jìn)制日志功能

log-bin=mall-mysql-bin  

## 設(shè)置二進(jìn)制日志使用內(nèi)存大?。ㄊ聞?wù))

binlog_cache_size=1M  

## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row)

binlog_format=mixed  

## 二進(jìn)制日志過期清理時間。默認(rèn)值為0,表示不自動清理。

expire_logs_days=7  

## 跳過主從復(fù)制中遇到的所有錯誤或指定類型的錯誤,避免slave端復(fù)制中斷。

## 如:1062錯誤是指一些主鍵重復(fù),1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致

slave_skip_errors=1062

4.修改完配置后重啟master實例

docker restart mysql-master

5.進(jìn)入mysql-master容器

docker exec -it mysql-master /bin/bash
mysql -uroot -proot

6.master容器實例內(nèi)創(chuàng)建數(shù)據(jù)同步用戶

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';


GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

7.新建從服務(wù)器容器實例3308

docker run -p 3308:3306 --name mysql-slave -v /mydata/mysql-slave/log:/var/log/mysql -v /mydata/mysql-slave/data:/var/lib/mysql -v /mydata/mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

8./mydata/mysql-slave/conf目錄下新建my.cnf

cd /mydata/mysql-slave/conf
vim my.cnf
[mysqld]

## 設(shè)置server_id,同一局域網(wǎng)中需要唯一

server_id=102

## 指定不需要同步的數(shù)據(jù)庫名稱

binlog-ignore-db=mysql  

## 開啟二進(jìn)制日志功能,以備Slave作為其它數(shù)據(jù)庫實例的Master時使用

log-bin=mall-mysql-slave1-bin  

## 設(shè)置二進(jìn)制日志使用內(nèi)存大小(事務(wù))

binlog_cache_size=1M  

## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row)

binlog_format=mixed  

## 二進(jìn)制日志過期清理時間。默認(rèn)值為0,表示不自動清理。

expire_logs_days=7  

## 跳過主從復(fù)制中遇到的所有錯誤或指定類型的錯誤,避免slave端復(fù)制中斷。

## 如:1062錯誤是指一些主鍵重復(fù),1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致

slave_skip_errors=1062  

## relay_log配置中繼日志

relay_log=mall-mysql-relay-bin  

## log_slave_updates表示slave將復(fù)制事件寫進(jìn)自己的二進(jìn)制日志

log_slave_updates=1  

## slave設(shè)置為只讀(具有super權(quán)限的用戶除外)

read_only=1

9.修改完配置后重啟slave實例

docker restart mysql-slave

10.在主數(shù)據(jù)庫中查看主從同步狀態(tài)

show master status;

11.進(jìn)入mysql-slave容器

docker exec -it mysql-slave /bin/bash
mysql -uroot -proot

12.在從數(shù)據(jù)庫中配置主從復(fù)制

change master to master_host='192.168.196.100', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;
master_host:主數(shù)據(jù)庫的IP地址;

master_port:主數(shù)據(jù)庫的運行端口;

master_user:在主數(shù)據(jù)庫創(chuàng)建的用于同步數(shù)據(jù)的用戶賬號;

master_password:在主數(shù)據(jù)庫創(chuàng)建的用于同步數(shù)據(jù)的用戶密碼;

master_log_file:指定從數(shù)據(jù)庫要復(fù)制數(shù)據(jù)的日志文件,通過查看主數(shù)據(jù)的狀態(tài),獲取File參數(shù);

master_log_pos:指定從數(shù)據(jù)庫從哪個位置開始復(fù)制數(shù)據(jù),通過查看主數(shù)據(jù)的狀態(tài),獲取Position參數(shù);

master_connect_retry:連接失敗重試的時間間隔,單位為秒。


13.在從數(shù)據(jù)庫中查看主從同步狀態(tài)

show slave status \G;

在這里插入圖片描述

14,在從數(shù)據(jù)庫中開啟主從同步

mysql>start slave;

15,查看從數(shù)據(jù)庫狀態(tài)發(fā)現(xiàn)已經(jīng)同步

show slave status \G;
show master status \G;

16.主從復(fù)制測試

主機(jī)新建庫-使用庫-新建表-插入數(shù)據(jù)
從機(jī)使用庫-查看記錄

-- 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE test;

-- 切換到 test 數(shù)據(jù)庫
USE test;

-- 創(chuàng)建表 test_table
CREATE TABLE test_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT
);

-- 插入數(shù)據(jù)
INSERT INTO test_table (name, age) VALUES
    ('John Doe', 25),
    ('Jane Smith', 30),
    ('Bob Johnson', 22);

-- 查詢插入的數(shù)據(jù)
SELECT * FROM test_table;

到此這篇關(guān)于docker實現(xiàn)MySQL的主從復(fù)制的文章就介紹到這了,更多相關(guān)docker MySQL主從復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ceph集群Docker容器化部署過程

    Ceph集群Docker容器化部署過程

    這篇文章主要介紹了Ceph集群Docker容器化部署過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker?Buildx實現(xiàn)掛載緩存卷的3種高階應(yīng)用場景

    Docker?Buildx實現(xiàn)掛載緩存卷的3種高階應(yīng)用場景

    本文主要介紹了緩存卷掛載的3種高階應(yīng)用場景,涵蓋多階段構(gòu)建、跨平臺編譯與CI/CD流水線中的實戰(zhàn)技巧,提升鏡像構(gòu)建效率與資源利用率,顯著縮短構(gòu)建時間,感興趣的可以了解一下
    2026-05-05
  • docker run啟動的容器掛掉了數(shù)據(jù)怎么辦

    docker run啟動的容器掛掉了數(shù)據(jù)怎么辦

    這篇文章主要介紹了docker run啟動的容器掛掉了,數(shù)據(jù)怎么辦,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Docker批量容器編排的實現(xiàn)

    Docker批量容器編排的實現(xiàn)

    這篇文章主要介紹了Docker批量容器編排的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • docker容器訪問GPU資源的使用指南

    docker容器訪問GPU資源的使用指南

    nvidia-docker 和 nvidia-container-runtime 是用于在 NVIDIA GPU 上運行 Docker 容器的兩個相關(guān)工具,它們的作用是提供 Docker 容器與 GPU 加速硬件的集成支持,本文給大家介紹了docker容器訪問GPU資源的使用指南,需要的朋友可以參考下
    2024-02-02
  • docker?system?prune命令使用示例詳解

    docker?system?prune命令使用示例詳解

    docker system prune是一個用于清理Docker系統(tǒng)資源的命令,它用于刪除未使用的數(shù)據(jù)(如未使用的鏡像、容器、網(wǎng)絡(luò)和存儲卷)以釋放磁盤空間,下面這篇文章主要給大家介紹了關(guān)于docker?system?prune命令使用示例的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Docker部署Gitea服務(wù)的實現(xiàn)

    Docker部署Gitea服務(wù)的實現(xiàn)

    本文主要介紹了Docker部署Gitea服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    這篇文章主要介紹了Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式,
    2024-01-01
  • Docker安裝Redis并使用Another?Redis?Desktop?Manager連接的方法

    Docker安裝Redis并使用Another?Redis?Desktop?Manager連接的方法

    Redis?是一個使用C語言編寫的、開源的(遵守?BSD?協(xié)議)、高性能的、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value的NoSQL數(shù)據(jù)庫,這篇文章主要介紹了Docker安裝Redis并使用Another?Redis?Desktop?Manager連接,需要的朋友可以參考下
    2022-09-09
  • Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫超詳細(xì)攻略

    Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫超詳細(xì)攻略

    Docker倉庫是集中存放鏡像的地方,分為公共倉庫和私有倉庫,這篇文章主要給大家介紹了關(guān)于Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08

最新評論

察雅县| 大厂| 安平县| 郴州市| 江口县| 舞钢市| 龙海市| 南汇区| 齐河县| 礼泉县| 北京市| 綦江县| 桂林市| 潮安县| 博客| 湛江市| 焦作市| 克什克腾旗| 察隅县| 秭归县| 叙永县| 江油市| 永年县| 资溪县| 民县| 新宁县| 阳新县| 滨州市| 柳河县| 长治县| 万载县| 克什克腾旗| 额尔古纳市| 四川省| 浮梁县| 永和县| 咸阳市| 陈巴尔虎旗| 高雄县| 广元市| 麻江县|