av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

詳解用Docker構(gòu)建MySQL主從環(huán)境

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

前言

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

介紹

詳解用Docker構(gòu)建MySQL主從環(huán)境

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

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

配置

創(chuàng)建目錄結(jié)構(gòu)

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

詳解用Docker構(gòu)建MySQL主從環(huán)境

配置 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 節(jié)點的 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 節(jié)點的 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

創(chuàng)建容器

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

運行上述命令進行容器創(chuàng)建,如果構(gòu)建時間過長,可以考慮更換鏡像源,例如下面幾個國內(nèi)優(yōu)質(zhì)鏡像源:

網(wǎng)易: http://hub-mirror.c.163.com

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

中國科學技術(shù)大學: http://docker.mirrors.ustc.ed...

構(gòu)建完成之后,使用 docker ps 命令查看一下容器是否正常運行,出現(xiàn)如下情形則可以認為已經(jīng)構(gòu)建成功。

詳解用Docker構(gòu)建MySQL主從環(huán)境

配置 slave 節(jié)點

詳解用Docker構(gòu)建MySQL主從環(huán)境

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

詳解用Docker構(gòu)建MySQL主從環(huán)境

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

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

輸入完成后再鍵入 start slave 命令啟動 slave 服務(wù)。啟動之后輸入 show slave status G 命令查看 slave 節(jié)點狀態(tài),出現(xiàn)如下情形可認為配置成功。

詳解用Docker構(gòu)建MySQL主從環(huán)境

測試主從節(jié)點同步狀態(tài)

詳解用Docker構(gòu)建MySQL主從環(huán)境

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

詳解用Docker構(gòu)建MySQL主從環(huán)境

總結(jié)

這是我自己嘗試搭建 MySQL 主從架構(gòu)所記錄的步驟,到此這篇關(guān)于詳解用Docker構(gòu)建MySQL主從環(huán)境的文章就介紹到這了,更多相關(guān)Docker構(gòu)建MySQL主從內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

相關(guān)文章:
主站蜘蛛池模板: 激情五月综合 | 日韩精品视频免费在线观看 | a视频在线观看 | 一区二区三区四区在线 | 免费在线观看黄 | 国产三级一区 | 精品日韩在线观看 | 91精品国产成人www | 久草福利在线 | 亚洲三级在线观看 | 懂色av一区二区夜夜嗨 | 国产欧美日本 | 91手机看片| 人人超碰人人 | 日韩在线精品 | 91成年人| 国产黄色录像 | 青草国产 | 免费黄色一级视频 | 欧美日韩一区在线 | 国产成人精品毛片 | 又色又爽又黄gif动态图 | 国产成人精品一区二区三区视频 | 日韩av免费在线播放 | 97av在线视频| 国产日韩欧美在线 | 成人免费在线观看网站 | 国产黄色免费视频 | 国产精品成人免费精品自在线观看 | 久久福利网 | 亚洲高清毛片一区二区 | 国产精品五区 | 性爱免费视频 | 韩日中文字幕 | 国产精品久久久一区二区 | 黄色免费观看网站 | 人人艹人人 | 日本一区二区高清 | av中文网| 欧美资源在线 | 日本免费一级片 |