基于 docker 的mysql 5.7 主主集群搭建

創建掛載目錄和配置文件

  • 主節點1
mkdir -p /mysql_master_1/mysql/log
mkdir -p /mysql_master_1/mysql/data
mkdir -p /mysql_master_1/mysql/conf
vim /mysql_master_1/mysql/conf/my.cnf
[mysqld]
datadir=/var/lib/mysql #MySQL 數據庫文件存放路徑
server_id = 1 #指定數據庫服務器的唯一標識。同一個復制組下的所有實例的server_id都必須唯一
log-bin= mysql-bin #開啟MySQL的bin log日志功能,自定義的值將作為bin log的名稱的前綴信息
binlog_do_db=testdb #設置需要同步的庫(多個數據庫設置可以寫多行)
auto-increment-offset=1 #自增值,為了防止 id 重復,我們需要在配置文件中對兩個數據庫的自增長的 offset 設置為不同的值
auto-increment-increment=2 #漂移值,也就是步長(也就是你準備搞幾個實例)
  • 主節點2
mkdir -p /mysql_master_2/mysql/log
mkdir -p /mysql_master_2/mysql/data
mkdir -p /mysql_master_2/mysql/conf
vim /mysql_master_2/mysql/conf/my.cnf
[mysqld]
datadir=/var/lib/mysql #MySQL 數據庫文件存放路徑
server_id = 2 #指定數據庫服務器的唯一標識。同一個復制組下的所有實例的server_id都必須唯一
log-bin= mysql-bin #開啟MySQL的bin log日志功能,自定義的值將作為bin log的名稱的前綴信息
binlog_do_db=testdb #設置需要同步的庫(多個數據庫設置可以寫多行)
auto-increment-offset=2 #自增值,為了防止 id 重復,我們需要在配置文件中對兩個數據庫的自增長的 offset 設置為不同的值
auto-increment-increment=2 #漂移值,也就是步長(也就是你準備搞幾個實例)

Mysql 容器啟動

  • 拉取鏡像
docker pull mysql:5.7
  • 啟動主節點1
docker run -p 33061:3306 --name mysql_master_1 \
-v /mysql_master_1/mysql/log:/var/log/mysql \
-v /mysql_master_1/mysql/data:/var/lib/mysql \
-v /mysql_master_1/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
  • 啟動主節點2
docker run -p 33062:3306 --name mysql_master_2 \
-v /mysql_master_2/mysql/log:/var/log/mysql \
-v /mysql_master_2/mysql/data:/var/lib/mysql \
-v /mysql_master_2/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

Mysql主主復制設置

主節點1設置同步賬號
  • 進入容器
docker exec -it mysql_master_1 /bin/bash
  • 連接mysql
mysql -uroot -p123456
  • 設置同步的專用帳號
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
  • 刷新權限
flush privileges;
  • 查看用戶
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 
  • 查詢master的狀態,記錄File、Position的值,File表示當前日志文件名稱,Position表示當前日志的位置,用于主節點2日志同步
show master status;
主節點2設置同步賬號
  • 進入容器
docker exec -it mysql_master_2 /bin/bash
  • 連接mysql
mysql -uroot -p123456
  • 設置同步的專用帳號
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
  • 刷新權限
flush privileges;
  • 查看用戶
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 
  • 查詢master的狀態,記錄File、Position的值,File表示當前日志文件名稱,Position表示當前日志的位置,用于主節點1日志同步
show master status;
主節點1配置數據同步
  • 進入容器
docker exec -it mysql_master_1 /bin/bash
  • 連接mysql
mysql -uroot -p123456
  • 設置主節點1連接,master_host為主節點2容器IP(docker inspect mysql_master_2查看ip),master_user為主備賬號,master_password為主備賬號密碼,master_log_file和master_log_pos為主節點2容器中,通過show master status查出來的值;
change master to master_host='172.18.0.3',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=600;
  • 啟動同步
start slave; 
  • 查看從節點狀態
show slave status\G;
主節點2配置數據同步
  • 進入容器
docker exec -it mysql_master_2 /bin/bash
  • 連接mysql
mysql -uroot -p123456
  • 設置主節點2連接,master_host為主節點1容器IP(docker inspect mysql_master_1查看ip),master_user為主備賬號,master_password為主備賬號密碼,master_log_file和master_log_pos為主節點1容器中,通過show master status查出來的值;
change master to master_host='172.18.0.2',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=600;
  • 啟動同步
start slave; 
  • 查看從節點狀態
show slave status\G;

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

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

相關文章

list容器(詳解)

list的介紹及使用(了解,后邊細講) 1.1 list的介紹(雙向循環鏈表) https://cplusplus.com/reference/list/list/?kwlist(list文檔介紹) 1. list是可以在常數范圍內在任意位置進行插入和刪除的序…

MapReduce分區

目錄 1. MapReduce分區1.1 哈希分區1.2 自定義分區 2. 成績分組2.1 Map2.2 Partition2.3 Reduce 3. 代碼和結果3.1 pom.xml中依賴配置3.2 工具類util3.3 GroupScores3.4 結果 參考 本文引用的Apache Hadoop源代碼基于Apache許可證 2.0,詳情請參閱 Apache許可證2.0。…

kamailio-ACC_JSON模塊詳解【后端語言go】

要確認 ACC_JSON 模塊是否已經成功將計費信息推送到消息隊列(MQueue),以及如何從隊列中取值,可以按照以下步驟進行操作: 1. 確認 ACC_JSON 已推送到隊列 1.1 配置 ACC_JSON 確保 ACC_JSON 模塊已正確配置并啟用。以下…

網件r7000刷回原廠固件合集測評

《網件R7000路由器刷回原廠固件詳解》 網件R7000是一款備受贊譽的高性能無線路由器,其強大的性能和可定制性吸引了許多高級用戶。然而,有時候用戶可能會嘗試第三方固件以提升功能或優化網絡性能,但這也可能導致一些問題,如系統不…

【C++STL標準模板庫】二、STL三大組件

文章目錄 1、容器2、算法3、迭代器 二、STL三大組件 1、容器 容器,置物之所也。 研究數據的特定排列方式,以利于搜索或排序或其他特殊目的,這一門學科我們稱為數據結構。大學信息類相關專業里面,與編程最有直接關系的學科&…

基于 Java 開發的 MongoDB 企業級應用全解析

基于Java的MongoDB企業級應用開發實戰 目錄 背景與歷史MongoDB的核心功能與特性企業級業務場景分析MongoDB的優缺點剖析開發環境搭建 5.1 JDK安裝與配置5.2 MongoDB安裝與集群配置5.3 開發工具選型 Java與MongoDB集成實戰 6.1 項目依賴與驅動選擇6.2 連接池與客戶端配置6.3…

需求分析應該從哪些方面來著手做?

需求分析一般可從以下幾個方面著手: 業務需求方面 - 與相關方溝通:與業務部門、客戶等進行深入交流,通過訪談、問卷調查、會議討論等方式,明確他們對項目的期望、目標和整體業務需求,了解項目要解決的業務問題及達成的…

算法題(57):找出字符串中第一個匹配項的下標

審題: 需要我們根據原串與模式串相比較并找到完全匹配時子串的第一個元素索引,若沒有則返回-1 思路: 方法一:BF暴力算法 思路很簡單,我們用p1表示原串的索引,p2表示模式串索引。遍歷原串,每次遍歷都匹配一次…

求組合數(遞推法、乘法逆元、盧卡斯定理、分解質因數)

文章目錄 遞推法 10^4代碼 乘法逆元 10^6代碼 盧卡斯定理 1 0 18 m o d 1 0 6 10^{18}mod 10^6 1018mod106代碼 分解質因數 常規的解法就不多加贅述了,如(分子/分母,邊乘邊除),本文講述以下方法: 遞推法 了…

WPF進階 | WPF 動畫特效揭秘:實現炫酷的界面交互效果

WPF進階 | WPF 動畫特效揭秘:實現炫酷的界面交互效果 前言一、WPF 動畫基礎概念1.1 什么是 WPF 動畫1.2 動畫的基本類型1.3 動畫的核心元素 二、線性動畫詳解2.1 DoubleAnimation 的使用2.2 ColorAnimation 實現顏色漸變 三、關鍵幀動畫深入3.1 DoubleAnimationUsin…

【Numpy核心編程攻略:Python數據處理、分析詳解與科學計算】2.27 NumPy+Pandas:高性能數據處理的黃金組合

2.27 NumPyPandas:高性能數據處理的黃金組合 目錄 #mermaid-svg-x3ndEE4hrhO6WR6H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x3ndEE4hrhO6WR6H .error-icon{fill:#552222;}#mermaid-svg-x3ndEE4hr…

swagger使用指引

1.swagger介紹 在前后端分離開發中通常由后端程序員設計接口,完成后需要編寫接口文檔,最后將文檔交給前端工程師,前端工程師參考文檔進行開發。 可以通過一些工具快速生成接口文檔 ,本項目通過Swagger生成接口在線文檔 。 什么…

DeepSeek API文檔解讀(對話模塊)

對話(Chat) 對話補全 報文message對象數組 System message name 一個在線聊天系統,其中涉及多個用戶和一個系統管理員。在這個系統中,每個用戶都可以發送消息,并且系統管理員可以監控和回復這些消息。為了區分不同…

【Numpy核心編程攻略:Python數據處理、分析詳解與科學計算】2.19 線性代數核武器:BLAS/LAPACK深度集成

2.19 線性代數核武器:BLAS/LAPACK深度集成 目錄 #mermaid-svg-yVixkwXWUEZuu02L {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-yVixkwXWUEZuu02L .error-icon{fill:#552222;}#mermaid-svg-yVixkwXWUEZ…

Linux——文件與磁盤

1. 磁盤結構 磁盤在我們的計算機中有著重要的地位,當文件沒有被打開時其數據就存儲在磁盤上,要了解磁盤的工作原理先要了解磁盤的結構。 1.1 磁盤的物理結構 以傳統的存儲設備機械硬盤為例,它通過磁性盤片和磁頭來讀寫數據。磁盤內部有多個旋…

【Envi遙感圖像處理】010:歸一化植被指數NDVI計算方法

文章目錄 一、NDVI簡介二、NDVI計算方法1. NDVI工具2. 波段運算三、注意事項1. 計算結果為一片黑2. 計算結果超出范圍一、NDVI簡介 歸一化植被指數,是反映農作物長勢和營養信息的重要參數之一,應用于遙感影像。NDVI是通過植被在近紅外波段(NIR)和紅光波段(R)的反射率差異…

UE虛幻引擎No Google Play Store Key:No OBB found報錯如何處理

UE虛幻引擎No Google Play Store Key:No OBB found報錯如何處理? 問題描述: UE成功打包APK并安裝過后,啟動應用時提示: No Google Play Store KeyNo OBB found and no store key to try to download. Please setone …

C++并發編程指南04

文章目錄 共享數據的問題3.1.1 條件競爭雙鏈表的例子條件競爭示例惡性條件競爭的特點 3.1.2 避免惡性條件競爭1. 使用互斥量保護共享數據結構2. 無鎖編程3. 軟件事務內存(STM) 總結互斥量與共享數據保護3.2.1 互斥量使用互斥量保護共享數據示例代碼&…

【Redis】主從模式,哨兵,集群

主從復制 單點問題: 在分布式系統中,如果某個服務器程序,只有一個節點(也就是一個物理服務器)來部署這個服務器程序的話,那么可能會出現以下問題: 1.可用性問題:如果這個機器掛了…

Vue.js 如何選擇合適的組件庫

Vue.js 如何選擇合適的組件庫 大家在開發 Vue.js 項目的時候,都會面臨一個問題:我該選擇哪個組件庫? 市面上有很多優秀的 Vue 組件庫,比如 Element Plus、Vuetify、Quasar 等,它們各有特點。選擇合適的組件庫&#xf…