使用Docker搭建MySQL主從復制(一主一從)

Docker安裝MySQL

docker pull mysql:5.7
docker images mysql

在這里插入圖片描述

安裝步驟

1.新建主服務器容器實例3307

docker run -p 3307:3306 --name mysql-master -v /usr/local/docker/mysql5.7/data/mysql-master/logs:/var/log/mysql -v /usr/local/docker/mysql5.7/data/mysql-master/data:/var/lib/mysql -v /usr/local/docker/mysql5.7/data/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

2.進入 /usr/local/docker/mysql5.7/data/mysql-master/conf 目錄下新建 my.cnf 文件,文件內容如下

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
#設置server_id,同一局域網中需要唯一
server_id=101
#指定不需要同步的數據庫名稱
binlog-ignore-db=mysql
#開啟二進制日志功能
log-bin=mall-mysql-bin
#設置二進制日志使用內存大小(事務)
binlog_cache_size=1M
#設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed
#二進制日志過期清理時間,默認值為0,表示不自動清理
expire_logs_days=7
#跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷
##如:1062錯誤是指一些主鍵重復;1032錯誤是因為主從數據庫不一致
slave_skip_errors=1062

3.改完配置后重啟mysql-master實例,重啟后查看容器狀態

docker restart mysql-master
docker ps

4.進入mysql-master容器,進入mysql服務

docker exec -it mysql-master bash
mysql -uroot -p123456

5.mysql-master容器實例內創建數據同步用戶

CREATE USER 'slave'@'%'IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.*TO'slave'@'%';

6.新建從服務器實例3308

docker run -p 3308:3306 --name mysql-slave -v /usr/local/docker/mysql5.7/data/mysql-slave/logs:/var/log/mysql -v /usr/local/docker/mysql5.7/data/mysql-slave/data:/var/lib/mysql -v /usr/local/docker/mysql5.7/data/mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

7.進入 /usr/local/docker/mysql5.7/data/mysql-slave/conf 目錄下新建 my.cnf 文件,文件內容如下

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
#設置server_id,同一局域網中需要唯一
server_id=102
#指定不需要同步的數據庫名稱
binlog-ignore-db=mysql
#開啟二進制日志功能
log-bin=mall-mysql-slave1-bin
#設置二進制日志使用內存大小(事務)
binlog_cache_size=1M
#設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed
#二進制日志過期清理時間,默認值為0,表示不自動清理
expire_logs_days=7
#跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷
##如:1062錯誤是指一些主鍵重復;1032錯誤是因為主從數據庫不一致
slave_skip_errors=1062
#relay_log配置中繼日志
relay_log=mall-mysql-relay-bin
#log_slave_updates表示slave將復制事件寫入自己的二進制日志
log_slave_updates=1
#slave設置為只讀(具有super權限的用戶除外)
read_only=1

8.改完配置后重啟mysql-slave實例

docker restart mysql-slave

9.在主數據庫中查看主從同步狀態

show master status;

在這里插入圖片描述

10.進入mysql-slave容器

docker exec -it mysql-slave bash
mysql -uroot -p123456

11.在從數據庫中配置主從復制

主從復制命令參數說明
master_host:主數據庫的ip地址 master_port:主數據庫的運行端口
master_user:在主數據庫創建的用于同步數據的用戶賬號 master_password:在主數據庫創建用于同步同步的用戶密碼
master_log_file:指定從數據庫要復制數據的日志文件,通過查看主數據的狀態,獲取File參數
master_log_pos:指定從數據庫從哪個位置開始復制數據,通過查看主數據的狀態,獲取Position參數
master_connect_retry:連接失敗重試的時間間隔,單位為秒

change master to master_host='宿主機ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

12.在從數據庫中查看主從同步狀態

show slave status \G;

在這里插入圖片描述

13.在從數據庫中開啟主從同步

start slave;

14.查看從數據庫狀態

show slave status \G;

在這里插入圖片描述

15.主從復制測試

主機新建庫、使用庫、新建表、寫入數據
從句使用庫、查詢記錄

CREATE DATABASE db1;USE db1;CREATE TABLE t1(id int, name varchar(20));INSERT INTO t1 VALUE (1, '李白');
INSERT INTO t1 VALUE (2, 'bai_qi');SELECT * FROM t1;

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40946.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40946.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day 31 C++ STL常用算法(下)

文章目錄 常用拷貝和替換算法copy——容器內指定范圍的元素拷貝到另一容器中函數原型注意——利用copy算法在拷貝時,目標容器要提前開辟空間示例 replace——將容器內指定范圍的第一個舊元素修改為新元素函數原型注意——replace只會替換區間內滿足條件的第一個舊元…

cve-2016-7193:wwlib 模塊堆數據結構溢出

簡介 漏洞編號:cve-2016-7193漏洞類型:堆溢出軟件名稱:Office模塊名稱:wwlib歷史漏洞:較多影響的版本 攻擊利用:APT 攻擊利器-Word 漏洞 CVE-2016-7193 原理揭秘 操作環境 系統:Win10 1607軟…

C++ 動態內存

C 動態內存 C 程序中的內存分為兩個部分: 棧:在函數內部聲明的所有變量都將占用棧內存堆:這是程序中未使用的內存,在程序運行時可用于動態分配內存 很多時候,無法提前預知需要多少內存來存儲某個定義變量中的特定信…

【Docker報錯】docker拉取鏡像時報錯:no such host

報錯信息 [rootSoft soft]# docker pull mysql Using default tag: latest Error response from daemon: Head "https://registry-1.docker.io/v2/library/mysql/manifests/latest": dial tcp: lookup registry-1.docker.io on 192.168.80.2:53: no such host解決方法…

3D模型格式轉換工具如何與Parasolid集成?

概述 HOOPS Exchange包括一個 Parasolid 連接器,它允許 Parasolid 開發人員輕松地將 CAD 數據導入到活動的 Parasolid 會話中。如果源數據基于 Parasolid(NX、Solid Edge 或 SolidWorks),則數據將按原樣導入。 這意味著您可以假…

主數據管理案例-某政務

1、 背景介紹及難點分析 近年來,我國在大數據發展方面持續發力,取得了明顯成效。但也要看到,目前我國大數據發展還存在“孤島化”“碎片化”等問題,無序參與過度與創新參與不足并存,導致大數據資源配置統籌不&#xff…

【C++】list容器

1.list基本概念 2.list構造函數 #include <iostream> using namespace std;#include<list> //鏈表list容器構造函數//輸出list鏈表 void printList(const list<int>& L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout &…

STM32入門學習之定時器PWM輸出

1.脈沖寬度調制PWM(Pulse Width Modulation)是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。PWM可以理解為高低電平的占空比&#xff0c;即輸出高電平時間與低電平時間的比值。PWM的應用是否廣泛&#xff0c;比如在步進電機的控制中&#xff0c;可以通過P…

【MySQL系列】-回表、覆蓋索引真的懂嗎

【MySQL系列】-回表、覆蓋索引真的懂嗎 文章目錄 【MySQL系列】-回表、覆蓋索引真的懂嗎一、MYSQL索引結構1.1 索引的概念1.2 索引的特點1.3 索引的優點1.4 索引的缺點 二、B-Tree與BTree2.1 B-Tree2.2 BTree2.3 B-Tree 與BTree樹的區別2.4 那么為什么InnoDB的主鍵最好要搞成有…

記一次 .NET 某外貿ERP 內存暴漲分析

一&#xff1a;背景 1. 講故事 上周有位朋友找到我&#xff0c;說他的 API 被多次調用后出現了內存暴漲&#xff0c;讓我幫忙看下是怎么回事&#xff1f;看樣子是有些擔心&#xff0c;但也不是特別擔心&#xff0c;那既然找到我&#xff0c;就給他分析一下吧。 二&#xff1…

【軟件測試】接口測試工具APIpost

說實話&#xff0c;了解APIpost是因為&#xff0c;我的所有接口相關的文章下&#xff0c;都有該APIpost水軍的評論&#xff0c;無非就是APIpost是中文版的postman&#xff0c;有多么多么好用&#xff0c;雖然咱也還不是什么啥網紅&#xff0c;但是不知會一聲就亂在評論區打廣告…

【力扣每日一題】2023.8.14 合并二叉樹

目錄 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代碼&#xff1a; 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 給我們合并兩棵二叉樹&#xff0c;合并的方式就是把對應位置的節點的值相加&#xff0c;最后把合并后的二叉樹的根節點返回出去。 這類二…

You have docker-compose v1 installed, but we require Docker Compose v2.

curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose docker-compose --version

一文看盡R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD詳解

一文看盡R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD詳解 以下六篇文章總結詳細&#xff1a; 1. 一文讀懂目標檢測&#xff1a;R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 2. 【深度學習】R-CNN 論文解讀及個人理解 3、R-CNN論文詳解 4、一文讀懂Faster RCNN 5、學一百遍都…

JAVA基礎知識(六)——異常處理

異常 一、異常概述與異常體系結構二、常見異常三、異常處理機制一&#xff1a;try-catch-finally四、異常處理機制二&#xff1a;throws五、手動拋出異常&#xff1a;throw六、用戶自定義異常類七、開發中如何選擇使用try-catch-finally還是使用throws八、如何看待代碼中的編譯…

goland插件推薦Rider UI Theme Pack

推薦一個goland配色插件Rider UI Theme Pack&#xff0c;里面自帶visual assist配色&#xff0c;配色截圖如下&#xff1a; 直接在plugins里面進行搜索或者在插件home page下載后進行安裝&#xff0c; 然后按照下圖進行設置即可。 此插件還適用于Jetbrains旗下的Clion和Pycharm…

WX1860- ngbe-1.2.5 xdp程序在路由模式下,使用iperf工具測試數據包不轉發,用jmeter可以

本地驗證時重定向iperf包有出現calltrace錯誤&#xff0c;經推斷&#xff0c;系統PAGE_SIZE<8k時可能出現&#xff08;getconf PAGE_SIZE指令可查看&#xff09;&#xff0c;按下圖將ngbe_main.c的2350行ngbe_rx_bufsz改為ngbe_rx_pg_size可修復。其次&#xff0c;需要將加載…

鴻蒙3.1 基于Token的訪問控制

介紹 代碼路徑:security_access_token: ATM(AccessTokenManager)是OpenHarmony上基于AccessToken構建的統一的應用權限管理能力。 ATM(AccessTokenManager)是OpenHarmony上基于AccessToken構建的統一的應用權限管理能力。 應用的Accesstoken信息主要包括應用身份標識APPID、…

什么是游戲出海運營?

游戲出海運營&#xff0c;也稱為游戲海外運營&#xff0c;是指將原本面向國內市場的游戲產品拓展到國際市場&#xff0c;以在海外地區推廣、發行、運營游戲的過程。這涵蓋了從市場調研、產品適應性優化、本地化翻譯、推廣營銷、社區互動到客戶支持等一系列策略和活動&#xff0…

阿里云對象存儲服務OSS

1、引依賴 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> <dependency><groupId>javax.xml.bind</groupId><artifa…