docker 安裝mysql 主從復制

一、搭建主服務器的mysql

1.1 先新建文件夾

mkdir -p /data/dockerData/mysql-master/conf

?1.2 進入/data/dockerData/mysql-master/conf目錄下新建my.config,

[mysqld]
## 設置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

1.3 用上面配置運行容器,創建3307端口的主庫

docker run -p 3307:3306 \
--name mysql-master \
-v /data/dockerData/mysql-master/log:/var/log/mysql \
-v /data/dockerData/mysql-master/data:/var/lib/mysql \
-v /data/dockerData/mysql-master/conf/my.config:/etc/mysql/my.config \
-e MYSQL_ROOT_PASSWORD=1234 \
-d mysql:5.7

1.4 進入主節點mysql-master容器實例,進入數據庫

1-今日容器
docker exec -it 主節點容器實例 /bin/bash
2-登錄mhsql
mysql -u root -proot

1.5 查看bin日志

show global variables like '%log_bin%';

log_bin為ON是開啟狀態?

?

1.6 在master數據庫(主庫)中創建同步用戶授予用戶slave REPLICATION SLAVE權限和REPLICATION CLIENT權限,用于在主從庫之間同步數據。

1-創建用戶
CREATE USER 'slave'@'192.168.1.%' IDENTIFIED BY 'slave';
2-設置密碼
ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
3-授權
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

刷新權限

flush privileges;

?二、創建從節點

?2.1先新建文件夾

mkdir -p /data/dockerData/mysql-slave/conf

?2.2 進入/data/dockerData/mysql-slave/conf目錄下新建my.config,設置從庫為只讀

[mysqld]
## 設置server_id,同一局域網中需要唯一
server_id=102
## 指定不需要同步的數據庫名稱
binlog-ignore-db=mysql  
## 開啟二進制日志功能,以備Slave作為其它數據庫實例的Master時使用
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

2.3 用上面配置運行容器,創建3308端口的從庫

docker run -p 3308:3306 \
--name mysql-slave\
-v /data/dockerData/mysql-slave/log:/var/log/mysql \
-v /data/dockerData/mysql-slave/data:/var/lib/mysql \
-v /data/dockerData/mysql-slave/conf/my.config:/etc/mysql/my.config \
-e MYSQL_ROOT_PASSWORD=1234 \
-d mysql:5.7

三、同步

3.1 在主節點數據庫查看主從同步狀態

show master status;

3.2 進入主庫,配置主從復制

change master to master_host='宿主機ip(192.168.1.1)', master_user='slave', master_password='1234', 
master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=1030, master_connect_retry=30;

?上面參數詳細解釋

master_host:主數據庫的IP地址;

master_port:主數據庫的端口;

master_user:在主數據庫創建的用于同步數據的用戶賬號;

master_password:在主數據庫創建的用于同步數據的用戶密碼;

master_log_file:指定從數據庫要復制數據的日志文件,通過查看主數據的狀態,獲取File參數;

master_log_pos:指定從數據庫從哪個位置開始復制數據,通過主數據的狀態,獲取Position參數;

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

四、檢查是否完成同步?

4.1 登錄從節點

1-進入容器
docker exec -it 主節點容器實例 /bin/bash
2-登錄mhsql
mysql -u root -proot

4.2 查看同步狀態?

?show slave status \G;

4.3 在從節點數據庫開啟主從同步

start slave;

顯示下面,成功

mysgl> start slave:Query 0K,0 rows affected (0.17 sec)

4.4 再次查看狀態,狀態顯示為yes 表示成功,最后自己插入點數據試試

show slave status \G;

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

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

相關文章

論文閱讀《High-frequency Stereo Matching Network》

論文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Zhao_High-Frequency_Stereo_Matching_Network_CVPR_2023_paper.pdf 源碼地址: https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network 概述 在立體匹配研究領域…

web漏洞原理與防御策略,web漏洞怎么挖掘

目錄 Web安全的重要性 ?編輯常見的Web漏洞類型及其原理: 1、跨站腳本攻擊(XSS): 2、SQL注入: 3、跨站請求偽造(CSRF): 4、遠程文件包含(RFI)和本地文件包含(LFI):…

Spring Boot實現接口冪等

Spring Boot實現接口冪等 1、pom依賴 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

大創項目推薦 協同過濾電影推薦系統

文章目錄 1 簡介1 設計概要2 課題背景和目的3 協同過濾算法原理3.1 基于用戶的協同過濾推薦算法實現原理3.1.1 步驟13.1.2 步驟23.1.3 步驟33.1.4 步驟4 4 系統實現4.1 開發環境4.2 系統功能描述4.3 系統數據流程4.3.1 用戶端數據流程4.3.2 管理員端數據流程 4.4 系統功能設計 …

【軟件安裝】VMware安裝Centos7虛擬機并且設置靜態IP,實現Windows和Centos7網絡互相訪問

這篇文章&#xff0c;主要介紹VMware安裝Centos7虛擬機并且設置靜態IP&#xff0c;實現Windows和Centos7網絡互相訪問。 目錄 一、VMware安裝Centos7 1.1、下載Centos7鏡像 1.2、安裝Centos7系統 二、設置靜態IP地址 2.1、查看虛擬機網絡IP 2.2、禁用NetworkManager服務 …

每天五分鐘計算機視覺:VGG網絡相對于AlexNet網絡有哪些不同?

本文重點 在前面的課程中&#xff0c;我們已經學習了VGG網絡模型&#xff0c;也學習了AlexNet網絡模型&#xff0c;AlexNet模型先于VGG網絡模型產生&#xff0c;所以VGG在一定程度上要優于AlexNet模型&#xff0c;二者來看一下&#xff0c;二者究竟有什么不同&#xff1f; 深度…

Qt的坐標系系統 - 3個坐標系,2個變換

參考&#xff1a; https://zhuanlan.zhihu.com/p/584048811https://www.zhihu.com/tardis/zm/art/634951149?source_id1005 小談Qt的坐標系系統 Qt中有三個坐標系 設備坐標系窗口坐標系邏輯坐標系 設備坐標系: 即Device坐標系。也是物理坐標系。即真實的的物理坐標系。 …

給鼠標描述符打上注釋防止忘記

static uint8_t g_mouse_hid_desc[] { //通用桌面設備 0x05, 0x01, // USAGE_PAGE (Generic Desktop) //鼠標設備 0x09, 0x02, // USAGE (Mouse) //應用集合 0xa1, 0x01, // COLLECTION (Application) //指針設備 0x09, 0x01, // USAGE (Pointer) //物理集合 0xa1, 0x00, // C…

【Linux】free命令使用

free命令 ?free是指查看當前系統內存的使用情況&#xff0c;它顯示系統中剩余及已用的物理內存和交換內存&#xff0c;以及共享內存和被核心使用的緩沖區。 作者 作者&#xff1a;Brian Edmonds。 語法 free [參數] free 命令 -Linux手冊頁 命令選項及作用 執行令 &am…

【二分查找】【滑動窗口】LeeCode2528:最大化城市的最小電量

作者推薦 【動態規劃】【廣度優先】LeetCode2258:逃離火災 本文涉及的基礎知識點 二分查找算法合集 滑動窗口 題目 給你一個下標從 0 開始長度為 n 的整數數組 stations &#xff0c;其中 stations[i] 表示第 i 座城市的供電站數目。 每個供電站可以在一定 范圍 內給所有城…

Java學習總結

1. Java集合體系框架 java.util中包含 Java 最常用的the collections framework。 Java集合類主要由兩個根接口Collection和Map派生出來的。 Collection 接口派生出了三個子接口List、Set、Queue。Map 接口 因此Java集合大致也可分成List、Set、Queue、Map四種接口體系。 …

CDH6.3.2安裝

文章目錄 [toc]一、CM簡介1、ClouderaManager的概念2、ClouderaManager的功能3、ClouderaManager的架構 二、準備清單1、部署步驟2、集群規劃3、軟件環境準備 三、安裝清單1、操作系統iso包2、JDK包3、MySQL包4、CM和CDH包5、部署ansible 四、基礎環境準備1、配置網絡2、配置ho…

Java項目開發,業務比較復雜如何減少bug

Java項目開發&#xff0c;業務比較復雜如何減少bug 當Java開發工作涉及復雜業務時&#xff0c;可以采取以下方法來減少bug的數量&#xff1a; 1、深入了解業務需求 充分了解業務需求&#xff0c;與業務人員進行充分的溝通和交流&#xff0c;確保對需求的理解正確。在需求分析…

el-collapse 默認展開第一個(實測有效)

<el-collapse accordion v-model"activeCollapse"> <el-collapse-item v-for"(item, index) in assetList" :name"index" :key"item.id" > 我這個是通過循環, 只需要v-model 綁定的值和 name 相等,就可以實現展開 然后就…

重新認識Word——給圖、表、公式等自動編號

重新認識Word——給圖、表、公式等自動編號 給圖增加題注題注失敗的情況給圖添加“如圖xx-xx所示” 給公式插入題注第一步——先加題注第二步——設置兩個制表符 解決題注“圖一-1”的問題 前面我們已經學習了如何引用多級列表自動編號了&#xff0c;現在我們有第二個問題&…

大數據湖體系規劃與建設方案:PPT全文51頁,附下載

關鍵詞&#xff1a;大數據解決方案&#xff0c;數據湖解決方案&#xff0c;數據數倉建設方案&#xff0c;大數據湖建設規劃&#xff0c;大數據湖發展趨勢 一、大數據湖體系規劃與建設背景 在傳統的企業信息化建設中&#xff0c;各個業務系統通常是獨立建設的&#xff0c;導致…

學習筆記10——Mysql的DDL語句

學習筆記系列開頭慣例發布一些尋親消息 鏈接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/197161.html 數據庫創建&#xff1a; CREATE DATABASE books&#xff1b; CREATE DATABASE IF NOT EXISTS books;更改字符集 ALTER DATABASE books CHARACTER SET gbk;庫的刪…

FFmpeg之AVFilterLink

這個結構體主要是用來link兩個filter的,它存在于每個AVFilterContext中 struct AVFilterContext {const AVClass *av_class; ///< needed for av_log() and filters common optionsconst AVFilter *filter; ///< the AVFilter of which this is an inst…

XX.push is not a function

錯誤通常發生在嘗試在非數組類型的變量上使用push方法 問題&#xff1a;定義了數組類型&#xff0c;用push方法一直報錯&#xff0c;感覺哪里都沒毛病 原因&#xff1a;雖然剛開始定義了數組類型&#xff0c;但可能是因為在代碼的某個地方將其重新賦值為了非數組類型的值。 …

【計算機網絡基礎2】IP地址和子網掩碼

1、IP地址 網絡地址 IP地址由網絡號&#xff08;包括子網號&#xff09;和主機號組成&#xff0c;網絡地址的主機號為全0&#xff0c;網絡地址代表著整個網絡。 廣播地址 廣播地址通常稱為直接廣播地址&#xff0c;是為了區分受限廣播地址。 廣播地址與網絡地址的主機號正…