色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

詳解用Docker構建MySQL主從環境

瀏覽:146日期:2023-10-24 14:52:39

前言

本篇文章記錄我使用 docker-compose 以及 dockerfile 來構建基于 binlog 的 MySQL 主從環境。如果你嚴格按照文中的步驟進行配置,相信很快就可以搭建好一個基礎的 MySQL 主從環境。

介紹

詳解用Docker構建MySQL主從環境

MySQL 主從同步分為 3 個步驟:

master 節點將數據的更新記錄寫到 binary log 中。 slave 節點開啟 IO 線程連接 master 節點,請求獲取指定 binary log 文件的指定位置之后的日志。 master 節點的 binary log dump 線程將指定的 binary log 信息推送給 slave 節點。 slave 節點的 IO 線程接收到消息后,將日志內容寫入 relay log 文件。 slave 節點的 SQL 線程檢測到 relay log 新增了內容,馬上解析 relay log 文件生成相應的 SQL 語句,并將這些 SQL 語句重放到數據庫,保證主從數據一致性。

配置

創建目錄結構

首先先搞定目錄結構,我的目錄結構如下,如果想按照自己的想法來組建目錄,在下文中的 docker-compose.yaml 文件與 Dockerfile 文件要注意修改文件路徑。

詳解用Docker構建MySQL主從環境

配置 docker-compose 模版文件

version: '3'services: mysql-master: build: context: ./ dockerfile: mysql/master/Dockerfile container_name: mysql-master volumes: - ./mysql/master/data:/var/lib/mysql restart: always ports: - 3305:3306 links: - mysql-slave mysql-slave: build: context: ./ dockerfile: mysql/slave/Dockerfile container_name: mysql-slave volumes: - ./mysql/slave/data:/var/lib/mysql restart: always ports: - 3306:3306

配置 master 節點的 cluster.cnf 文件以及 Dockerfile 文件

[mysqld]server_id=100binlog-ignore-db=mysqllog-bin=replicas-mysql-binbinlog_cache_size=1Mbinlog_format=mixedslave_skip_errors=1062# 我的 MySQL 為 8.x,需要如下配置default_authentication_plugin=mysql_native_passwordcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ci

FROM mysql:latestADD ./mysql/master/cluster.cnf /etc/mysql/conf.d/cluster.cnfENV MYSQL_ROOT_PASSWORD=password

配置 slave 節點的 cluster.cnf 文件以及 Dockerfile 文件

[mysqld]server_id=101binlog-ignore-db=mysqlbinlog_cache_size=1Mbinlog_format=mixedslave_skip_errors=1062relay_log=replicas-mysql-relay-binlog_slave_updates=1read_only=1# 我的 MySQL 為 8.x,需要如下配置default_authentication_plugin=mysql_native_passwordcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ci

FROM mysql:latestADD ./mysql/slave/cluster.cnf /etc/mysql/conf.d/cluster.cnfENV MYSQL_ROOT_PASSWORD=password

創建容器

docker-compose up -d mysql-master mysql-slave

運行上述命令進行容器創建,如果構建時間過長,可以考慮更換鏡像源,例如下面幾個國內優質鏡像源:

網易: http://hub-mirror.c.163.com

阿里云: http://&lt ;你的ID>.mirror.aliyuncs.com

中國科學技術大學: http://docker.mirrors.ustc.ed...

構建完成之后,使用 docker ps 命令查看一下容器是否正常運行,出現如下情形則可以認為已經構建成功。

詳解用Docker構建MySQL主從環境

配置 slave 節點

詳解用Docker構建MySQL主從環境

首先使用 docker 命令進入到 mysql-master 容器中,再登錄到 mysql 輸入 show master status 命令獲取主庫狀態,這里我們要關心兩個參數 File 以及 Position ,之后配置從庫會用到這兩個參數。

詳解用Docker構建MySQL主從環境

接下來使用 docker 命令進入 mysql-slave 容器,再登錄到 mysql 輸入以下語句進行與 mysql-master 連接。

CHANGE MASTER TO MASTER_HOST=’mysql-master’, MASTER_USER=’root’, MASTER_PASSWORD=你設置的密碼, MASTER_LOG_FILE=上一步得到的 File 參數, MASTER_LOG_POS=上一步得到的 Position 參數;

輸入完成后再鍵入 start slave 命令啟動 slave 服務。啟動之后輸入 show slave status G 命令查看 slave 節點狀態,出現如下情形可認為配置成功。

詳解用Docker構建MySQL主從環境

測試主從節點同步狀態

詳解用Docker構建MySQL主從環境

登錄到 mysql-master 節點,創建一個全新的庫,創建成功之后,切換到 mysql-slave 節點,輸入 show databases; 命令,查看是否成功同步,出現如下情形則配置成功。其他操作可以自己嘗試,這里不再做演示。

詳解用Docker構建MySQL主從環境

總結

這是我自己嘗試搭建 MySQL 主從架構所記錄的步驟,到此這篇關于詳解用Docker構建MySQL主從環境的文章就介紹到這了,更多相關Docker構建MySQL主從內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产成人在线播放视频 | 一级美女黄色片 | 欧美在线视频免费观看 | 影音先锋色先锋女同另类 | 美女张开大腿让男人桶 | 国产精品欧美一区二区三区 | 国产一区在线免费观看 | 女人张开腿让男人捅的视频 | 久久久国产一区二区三区 | 亚洲国产成人久久精品影视 | 精品国产91久久久久久久 | 亚洲无吗视频 | 国产三级视频在线 | 日本三级2021最新理论在线观看 | 嫩草影院成人 | 国产成人精品免费午夜 | 精品国产日韩亚洲一区在线 | 国产精品久久久久久福利漫画 | 欧美日韩高清不卡一区二区三区 | 在线观看中文字幕国产 | 国产成人一区二区 | 久久成人视 | 免费一级特黄欧美大片勹久久网 | 国产一区二区三区四区在线观看 | 91热播| 久久日本三级韩国三级 | 一级一级毛片看看 | 日本一区二区在线 | 久久九九国产精品怡红院 | 色一级片 | 高清在线精品一区二区 | 国产精品自拍亚洲 | 在线视频日韩 | 欧美成人极品怡红院tv | 国产精品欧美一区二区在线看 | 成人看片黄a毛片 | 亚洲毛片在线观看 | 欧美国产精品 | 亚洲成年www | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 亚洲日本一区二区三区在线 |