如何用 Docker 快速搭建 MySQL 主從

2021-12-25 程序猿DD

現在容器技術越來越普及,隨著 Docker, Kubernetes 不斷發展,雲原生的概念十分火熱。掌握一些容器知識,會基於 Docker,Kubernetes 環境進行服務端開發對後端開發者也成了必不可少的一部分。本文主要描述如何使用 Docker 技術快速搭建一個 MySQL 主從架構。

環境準備

CentOS 7

Docker 18.09.0

MySQL 5.7

環境搭建

1. 使用 Docker 搜索 MySQL 鏡像,並且拉取 MySQL 5.7 版本。

docker search mysql



docker pull mysql:5.7



2. 首先新建一個文件夾 master 裡面存放 MySQL 主節點的配置文件 my.cnf。

mkdir master && vi ./master/my.cnf


開啟 bin log 和指定 server-id

[mysqld]
## 開啟二進位日誌功能
log-bin = mysql-bin
## 設置server_id,一般設置為IP,注意要唯一
server-id = 3310

3. Docker 運行 MySQL 鏡像

docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name master -v $PWD/master:/etc/mysql/conf.d -p 3310:3306 mysql:5.7


運行成功後使用 docker ps mysql 查看 MySQL 實例運行狀態


4. Docker 方式連接 MySQL

docker exec -it master bash
mysql -uroot -p



5. 檢查 主節點 MySQL 的 master 狀態和 bin log 開啟情況



6. 同樣方式搭建從節點 MySQL 實例

mkdir slave && vi ./slave/my.cnf



7. Docker 方式運行從節點 MySQL 實例

docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name slave -v $PWD/slave:/etc/mysql/conf.d -p 3311:3306 mysql:5.7



8. 進入從節點 MySQL 實例關聯主節點 MySQL 實例

change master to master_host='localhost', master_user='root', master_password='123456', master_port=3310, master_log_file='mysql-bin.000003', master_log_pos=154, master_connect_retry=60;

9. 從節點 MySQL 開啟同步,並且查看同步狀態

start slave
show slave status



當 SlaveIORunning 和 SlaveSQLRunning 都是 Yes 了,表明同步開啟成功,接下來就是驗證了.

結果驗證

10. 首先連接進入主節點 MySQL 實例,並且創建資料庫 test

docker exec -it master bash
mysql -uroot -p123456
create database test;



11. 連接進入從節點 MySQL 實例,查看當前資料庫

docker exec -it slave bash
mysql -uroot -p123456
show databases;




可以從圖中看到此刻主節點新增資料庫的操作也同步到從節點上了。

到這裡, Docker 方式的 MySQL 主從搭建就算完成了,希望對你有所幫助。

相關焦點

  • 基於 Docker 搭建 MySQL 主從複製
    Centos環境下搭建過,但是也忘的也差不多了,因此本次嘗試在Docker中搭建。本篇博文相對簡單,因為是初次使用Docker,MySQL的主從複製之前也在Centos環境下搭建過,但是也忘的也差不多了,因此本次嘗試在Docker中搭建。根據網上教程走還是踩了一些坑,不過所幸最終搭建成功,因此記錄下來,避免以後踩了重複的坑。
  • 【mycat系列一】基於 Docker 搭建 MySQL 主從複製的詳細教程
    目錄前言:主從複製原理一、安裝docker二、安裝mysql三、配置Master(主)四、配置Slave(從庫)五、測試主從複製"]}二、安裝mysql1、查詢鏡像docker search mysql2、下載mysql 5.7.13鏡像docker pull mysql:5.7.133、查看下載的鏡像docker images
  • mysql主從同步
    說起這個mysql主從同步,也有另外一種說法就是讀寫分離,相信大傢伙多少都了解一點,可能都不是很深入的了解,接下來我將帶領大家去進一步了解這個,
  • 使用mysqlreplicate命令快速搭建 Mysql 主從複製
    MySQL的Replication(英文為複製)是一個多MySQL資料庫做主從同步的方案,特點是異步複製,廣泛用在各種對
  • MySQL 主從複製模式太難部署,我用 Docker 五分鐘就搞定它!
    2創建 Master 主庫$ docker pull mysql:8.0.26$ mkdir -p /home/apps/mysql-master/{config,log,data}$ docker -01/{config,log,data}# 啟動容器$ docker run -d --name mysql-slave-01 \--restart=always \--privileged=true \-p 3310:3306 \-v /home/apps/mysql-slave-01/config:/etc/mysql/conf.d \
  • mysql資料庫之安裝、主從搭建、備份恢復
    :  2. mysql-5.7.29資料庫主從環境搭建:  3.資料庫主從環境搭建:  上面主要講解了如何安裝一個單機版的mysql資料庫,但是實際在生產環境中,我們一般都是要安裝主從架構的資料庫。目前只介紹一下主從環境的搭建;# 先按照上面的操作,在兩臺ECS上面分別搭建mysql 5.7.29的資料庫。
  • Docker 搭建PostgreSQL主從數據流式複製
    Standby資料庫原理簡單介紹一些基礎概念與原理,首先我們做主從同步的目的就是實現db服務的高可用性,通常是一臺主資料庫提供讀寫,然後把數據同步到另一臺從庫,然後從庫不斷apply從主庫接收到的數據,從庫不提供寫服務,只提供讀服務。
  • 使用 Docker 搭建 PostgreSQL 12 主從環境
    }}\t{{.Status}}\t{{.Networks}}\t{{.Ports}}"創建主從流複製專用帳號用客戶端工具連接資料庫後執行以下語句,這裡我使用了pgAdmin4。ROLE repuser WITH LOGIN REPLICATION CONNECTION LIMIT 5 PASSWORD 'Q1w2EpgAdmin 也可以用
  • 如何在Linux下使用docker搭建LNMP環境
    最近在使用docker的過程中遇到了許許多多的坑。首次使用它也是浪費了大量的精力。今天我們來簡單說下如何用它搭建一個LNMP環境吧,遇到的坑和解決方法我也會寫到裡面。。            最近也是想構思一個小項目玩玩,首先就是環境的選擇,因為我是在個人電腦上測試環境等等,首先考慮的就是資源利用的問題,例如分布式,集群等等。
  • 技術分享 | MySQL 主從複製中創建複製用戶的時機探討
    通常來說,用得較多的方式是在搭建主從複製前,先在主庫創建好複製用戶,然後做一個 Xtrabackup 物理全備,再拿到從庫上恢復並搭建主從。除此以外,還有哪些方式呢?分別對主從複製有哪些影響?一起來看一下。
  • Docker快速入門
    創建和使用私有倉庫:可以通過官方提供的registry鏡像來簡單搭建一套本地私有倉庫環境。安裝Docker(Ubuntu16.04),默認安裝在/var/lib/docker    sudo apt-get install apt-transport-https    sudo apt-get update    sudo apt-get install -y docker.ioTip:在用putty連接阿里雲時
  • 來,用docker搭建一個個人博客網站(WordPress)玩玩
    使用WordPress可以快速搭建獨立的博客網站。WordPress 不僅僅是一個博客程序,也是一款CMS,很多非博客網站也是用WordPress搭建的。豐富的插件和模板是WordPress非常流行的一個特性。WordPress插件資料庫中有超過18000個插件,包括SEO、控制項等等。個人可以根據它的核心程序提供的規則自己開發模板和插件。
  • Docker安裝mysql,nginx
  • 使用 Docker 搭建 Laravel 本地環境
    比,它佔用體積太大,啟動速度慢,同時響應速度很慢,現在有了 docker 這種更好的方式,可以輕鬆方便的搭建整套 PHP 開發環境。本文就介紹如何使用 docker 搭建 Laravel 本地環境。安裝 docker首先安裝 docker。
  • 在Docker環境下如何搭建測試管理平臺
    本文將介紹如何在CentOS 7 + Docker環境中部署和配置Testlink1.9 + Mantis。  本次環境搭建作業系統選用網際網路公司主流Linux系統CentOS7,容器環境選擇Docker1.12。
  • 使用Docker安裝MySQL
    在使用、學習MySQL的時候我們需要下載不同的版本的MySQL ,之前我們可以使用sandbox 快速搭建單節點或者一主多從的資料庫。
  • 如何用Docker+WordPress搭建你的博客
    我用的的是CentOS7, 版本信息如下uname -r 3.10.0-862.el7.x86_64然後用YUM工具進行安裝,yum update -yyum install docker -y由於國情,我們需要對配置一下docker的下載鏡像,提高一下後續的加載速度
  • 如何在 Linux 中使用 Docker安裝MySQL
    如果您是 MySQL 的新手或希望快速輕鬆地安裝 MySQL 資料庫的人,那麼本文適合您,在本文中,我們將學習如何在 Linux 中使用 Docker 和 Docker compose 設置 MySQL。讓我們首先設置 docker 環境來啟動 MySQL 容器。1.
  • docker-compose 快速啟動 wordpress 搭建博客
    很多時候我想用一個工具只是做一個嘗試,於是希望它可以:可快速啟動,不要安裝一堆系統級依賴可快速清除,不留痕跡
  • Docker 搭建--jira平臺
    首先,我們去下載JIRA的鏡像文件docker pull cptactionhank/atlassian-jira-software然後呢,我們去啟動我們的mysql服務,執行下面的命令創建資料庫。.* TO 'jira'@'%' IDENTIFIED BY 'Jira#123';flush privileges;我們來啟動我們的jira鏡像docker run -d -p 7081:8080 cptactionhank/atlassian-jira-software:8.1.0啟動後,我們可以訪問本地的