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

Docker安裝MySQL集群全過程(主從復制)

 更新時間:2025年07月15日 09:09:13   作者:搬運Gong  
本文介紹通過Docker實現(xiàn)數(shù)據(jù)庫主從集群部署,涵蓋網(wǎng)絡創(chuàng)建、my.cnf配置、復制設置及測試,解決防火墻等常見問題,確保數(shù)據(jù)同步可靠

為確保生產(chǎn)環(huán)境中的數(shù)據(jù)安全與可靠性,數(shù)據(jù)庫普遍采用主從集群架構(一主一從)進行部署。

本文將系統(tǒng)闡述如何利用Docker鏡像實現(xiàn)數(shù)據(jù)庫集群的容器化部署,并完整記錄各配置環(huán)節(jié)的具體實現(xiàn)步驟。

一、主服務實例創(chuàng)建(可以先創(chuàng)建docker網(wǎng)絡)

1、首先通過下面的命令將主服務器實例創(chuàng)建完成

docker run -d -p 3306:3306 --privileged=true \
-v /appData/mysql/master/log:/var/log/mysql \
-v /appData/mysql/master/data:/var/lib/mysql \
-v /appData/mysql/master/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-master mysql:5.7

主服務器運行成功。下面來修改一下對應的my.cnf配置。

2、添加主服務器對應配置文件,進入到 /appData/mysql/master/conf 目錄下,此目錄已掛載到容器內(nèi)部,新建 my.cnf 文件,并添加如下內(nèi)容:

## 設置編碼字符集
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8

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

## 指定不需要同步的數(shù)據(jù)庫名稱
binlog-ignore-db=mysql

## 開啟二進制日志功能
log-bin=master-mysql-bin

## 設置二進制日志使用內(nèi)存大小(事務)
binlog_cache_size=1M

## 設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed

## 二進制日志過期清理時間。默認值為0;表示不自動清理.
expire_logs_days=7

## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷
## 如:1062錯誤是指一些主鍵重復,1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062

進入到容器,檢查一下配置文件是否掛載成功。

3、配置文件添加完畢后,重啟主服務器

docker restart mysql-master

查看編碼字符集是否修改成功:

docker exec -it mysql-master /bin/bash

mysql -u root -p

show variables like '%character%';

已經(jīng)修改生效,說明剛剛修改的配置文件沒問題,進行下一步。

4、進入到主服務器的容器中,創(chuàng)建slave用戶并授權,用來同步數(shù)據(jù)使用

# 交互式模式進入容器內(nèi)部
docker exec -it mysql-master /bin/bash

# 使用root 用戶登錄mysql服務器
mysql -uroot -p

# 創(chuàng)建slave用戶并授權
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

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

二、從服務器實例創(chuàng)建

1、和主服務器創(chuàng)建的命令一樣,個別掛載地址需要調(diào)整一下,如果是在不同的服務器上,可直接執(zhí)行;

docker run -d -p 3307:3306 --privileged=true \
-v /appData/mysql/slave/log:/var/log/mysql \
-v /appData/mysql/slave/data:/var/lib/mysql \
-v /appData/mysql/slave/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-slave mysql:5.7

2、添加從服務器對應配置文件,進入到 /appData/mysql/slave/conf 目錄下,此目錄已掛載到容器內(nèi)部,新建 my.cnf 文件,并添加如下內(nèi)容:

## 設置編碼字符集
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
## 設置server_id,同一局域網(wǎng)中需要唯一
server_id=102

## 指定不需要同步的數(shù)據(jù)庫名稱
binlog-ignore-db=mysql

## 開啟二進制日志功能,以備slave作為其他數(shù)據(jù)庫實例的master時使用
log-bin=slave-mysql-bin

## 設置二進制日志使用內(nèi)存大小(事務)
binlog_cache_size=1M

## 設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed

## 二進制日志過期清理時間。默認值為0;表示不自動清理.
expire_logs_days=7

## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷
## 如:1062錯誤是指一些主鍵重復,1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062

## relay_log 配置中繼日志
relay_log=slave-mysql-relay-bin

## log_slave_updates 表示slave將復制事件寫進自己的二進制日志
log_slave_updates=1

## slave 設置為制度(具有super權限的用戶除外)
read_only=1

3、重啟從服務器實例

docker restart mysql-slave

4、和主服務器一樣,登入mysql,使用命令行查看配置文件是否生效。

三、主從搭建

1、在主服務器中,查看當前主服務器情況,如下:

show master status;

這里的信息很重要,主要作用是告訴從機同步的位置。

2、在從數(shù)據(jù)庫中配置主從復制,在從機的mysql命令行中,執(zhí)行以下命令:

change master to master_host='192.168.152.128', master_user='slave', master_password='123456',master_port=3306,master_log_file='master-mysql-bin.000001',master_log_pos=617,master_connect_retry=30;

參數(shù)說明:

  • master_host:主數(shù)據(jù)庫的|P地址;
  • 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ù)庫要復制數(shù)據(jù)的日志文件,通過査看主數(shù)據(jù)的狀態(tài),獲取File參數(shù);
  • master_log_pos:指定從數(shù)據(jù)庫從哪個位置開始復制數(shù)據(jù),通過査看主數(shù)據(jù)的狀態(tài),獲Position參數(shù);
  • master_connect_retry:連接失敗重試的時間間隔,單位為秒。

執(zhí)行完畢以后,查看一下從機的主從同步狀態(tài):

show slave status \G;

這里命令的結尾使用了 “\G” 的形式,則是以下面這種類似于json的格式展示出來的,因為內(nèi)容較多,如果以表格的形式展現(xiàn),不易于閱讀。

從圖中可以看到,兩個狀態(tài)值:

Slave_IO_Running: No
Slave_SQL_Running: No

這兩個值均為No,說明主從復制還未開始。

下面,繼續(xù)進行后續(xù)操作。

3、在從數(shù)據(jù)庫中開啟主從同步,執(zhí)行下面的命令:

start slave;

4、從數(shù)據(jù)庫開啟主從配置后,查看一下狀態(tài),看看是否啟用主從同步功能;

這里遇到了一個小坑,具體解決方案可參考:我這里主要是因為防火墻的問題導致。

如果經(jīng)過多次調(diào)整,仍不生效,記得使用《重啟大法》,通常情況下,可以給你意外驚喜。

最終效果如下如:

四、主從復制測試

1、在主數(shù)據(jù)庫中,新建數(shù)據(jù)庫、表以及插入信息;

2、從庫中查看是否同步;

發(fā)現(xiàn),數(shù)據(jù)已經(jīng)完美同步。

3、使用客戶端再次進行測試;

查詢從庫:

至此,安裝完畢!

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • docker批量加載鏡像的方法實現(xiàn)

    docker批量加載鏡像的方法實現(xiàn)

    通常我們批量加載docker鏡像文件的時候,通常會寫一個shell文件,本文就來介紹一下史上最簡單批量加載docker鏡像的方法,感興趣的可以了解一下
    2023-12-12
  • docker里面不能使用vim的問題及解決

    docker里面不能使用vim的問題及解決

    這篇文章主要介紹了docker里面不能使用vim的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Docker鏡像的commit操作示例及作用

    Docker鏡像的commit操作示例及作用

    這篇文章主要為大家介紹了Docker鏡像的commit操作示例及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 基于docker-compose構建Mongodb副本集的示例詳解

    基于docker-compose構建Mongodb副本集的示例詳解

    副本集是?MongoDB?高可用性和數(shù)據(jù)安全性策略的基礎,適用于對數(shù)據(jù)安全性和服務可用性有較高要求的場景,本文給大家介紹了如何基于docker-compose構建Mongodb副本集,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • docker build鏡像時,無法訪問網(wǎng)絡問題

    docker build鏡像時,無法訪問網(wǎng)絡問題

    這篇文章主要介紹了docker build鏡像時,無法訪問網(wǎng)絡問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • docker使用阿里云鏡像倉庫的方法

    docker使用阿里云鏡像倉庫的方法

    本篇文章主要介紹了docker使用阿里云鏡像倉庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Linux使用skopeo工具如何進行docker鏡像同步

    Linux使用skopeo工具如何進行docker鏡像同步

    這篇文章主要介紹了Linux使用skopeo工具如何進行docker鏡像同步問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 在Docker中部署Confluence和jira-software的方法步驟

    在Docker中部署Confluence和jira-software的方法步驟

    這篇文章主要介紹了在Docker中部署Confluence和jira-software的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Docker的boot2docker.iso鏡像使用

    Docker的boot2docker.iso鏡像使用

    這篇文章主要介紹了Docker的boot2docker.iso鏡像使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 超簡單實現(xiàn)Docker搭建個人博文系統(tǒng)

    超簡單實現(xiàn)Docker搭建個人博文系統(tǒng)

    這篇文章主要介紹了超簡單實現(xiàn)Docker搭建個人博文系統(tǒng),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12

最新評論

沐川县| 瑞丽市| 垦利县| 和顺县| 额尔古纳市| 金门县| 本溪| 阜平县| 吴旗县| 云梦县| 冀州市| 建水县| 达州市| 尤溪县| 大宁县| 台前县| 信丰县| 平利县| 怀化市| 贵定县| 于都县| 江门市| 蓬溪县| 杭锦后旗| 江安县| 措美县| 志丹县| 仁怀市| 克东县| 抚远县| 武清区| 清河县| 龙井市| 安塞县| 黄龙县| 河南省| 锡林浩特市| 永兴县| 炎陵县| 宁晋县| 施甸县|