欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker實現MySQL主從雙備的示例代碼

 更新時間:2022年01月27日 10:27:14   作者:Xy-Huang  
本文主要介紹了docker實現MySQL主從雙備,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

環(huán)境配置

本地操作系統(tǒng):Win10
虛擬機的操作系統(tǒng):CentOS Stream 8
已安裝docker,可以參考詳細安裝教程

MySQL基礎知識

搭建MySQL主從雙備是在docker情況下自定義MySQL的配置文件,在上一節(jié)我們講述了如何掛載docker的MySQL數據文件,其中run指令參數-v /home/mysql/conf:/etc/mysql/conf.d是掛載MySQL的配置文件。

當我們通過指令進入docker內部查看MySQL配置文件的時候,發(fā)現/etc/mysql/conf.d只是一個文件夾,同目錄情況下分別有配置文件my.cnf和my.cnf.fallback,如圖所示

在這里插入圖片描述


在MySQL中,/etc/mysql/my.cnf 是默認配置文件,/etc/conf.d/ 下的文件為自定義配置文件,比如 /etc/mysql/conf.d/my.cnf 文件。
由于docker的/etc/mysql/conf.d文件掛載到本地系統(tǒng)的/home/mysql/conf,因此我們只需在本地系統(tǒng)的/home/mysql/conf寫入配置文件即可修改docker的MySQL配置。

搭建主MySQL

由于docker的mysql默認使用/etc/mysql/my.cnf的配置文件,如果要自定義配置文件,需要進入docker的MySQL獲取默認配置文件/etc/mysql/my.cnf的配置信息,然后在本地系統(tǒng)的/home/mysql/conf編寫配置文件。
假設主MySQL的容器名稱為mysql10 ,docker啟動指令如下:

docker run --name mysql10 -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 -d mysql

進入docker獲取MySQL默認配置信息方法如下:

# 進入容器,mysql10 是容器名稱
docker exec -it mysql10 bash
# 查看MySQL默認配置文件
cat /etc/mysql/my.cnf

上述指令執(zhí)行結果如圖所示

在這里插入圖片描述

將上圖的配置信息寫入本地系統(tǒng)的自定義配置文件/home/mysql/conf/mysql.cnf,并添加屬性log-bin和server-id

[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
secure-file-priv= NULL
# 開啟二進制日志,屬性值mysql-bin 是日志的基本名或前綴名
log-bin=mysql-bin
# server-id可隨便設置,但必須保證是唯一,數值為1到2的32次方–1之間的一個正整數
server-id=2

配置文件完成后,使用指令docker restart mysql10重啟docker

搭建從MySQL

假設主MySQL的容器名稱為mysql11,docker啟動指令如下:

docker run --name mysql11 -p 3307:3306 -v /home/mysql11/conf:/etc/mysql/conf.d -v /home/mysql11/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 -d mysql

在本地系統(tǒng)的/home/mysql11/conf編寫自定義配置文件mysql.cnf,如下所示:

[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
secure-file-priv= NULL
# 開啟二進制日志,屬性值mysql-bin 是日志的基本名或前綴名
log-bin=mysql-bin
# server-id可隨便設置,但必須保證是唯一,數值為1到2的32次方–1之間的一個正整數
server-id=3

配置文件完成后,使用指令docker restart mysql11重啟docker

配置主從復制

現在我們已搭建兩個docker容器,每個容器分別運行端口3306和3307的MySQL,并且對每個MySQL設置了自定義配置文件。下一步在從MySQL設置主MySQL的監(jiān)聽功能,我們使用Navicat Premium 15連接從MySQL,然后執(zhí)行下面SQL語句,這樣就能實現主從復制,代碼如下:

-- 監(jiān)聽主MySQL
CHANGE MASTER TO 
-- 主MySQL的IP、端口、用戶名和密碼
MASTER_HOST = '192.168.3.250',
MASTER_PORT = 3306,
MASTER_USER = 'root',
MASTER_PASSWORD = '1234';
-- 開啟監(jiān)聽功能
START SLAVE;
-- 查詢監(jiān)聽狀態(tài)
SHOW SLAVE STATUS;

執(zhí)行上述SQL語句之后,在查詢結果找到Slave_IO_Running和Slave_SQL_Running,如果兩個字段的值皆為Yes則說明配置成功,如圖所示:

在這里插入圖片描述

如果配置失敗,則可以通過docker指令查看日志記錄,指令如下:

# mysql11是從MySQL的容器名稱
docker logs mysql11 -f

大部分配置失敗都是主MySQL的IP、端口、用戶名和密碼錯誤導致的,具體信息還得分析docker的日志記錄。

拓展

至此,我們已完成2臺MySQL服務的主從雙備功能(從復制主),功能測試可以在Navicat Premium 15自行測試。
此外還可以實現主從互備(從復制主,主復制從)、搭建多臺MySQL的主從關系等功能,這些功能主要在配置文件my.cnf添加相應配置屬性和執(zhí)行對應SQL語句。

到此這篇關于docker實現MySQL主從雙備的文章就介紹到這了,更多相關docker實現MySQL主從雙備內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker配置MySql環(huán)境的實現步驟

    Docker配置MySql環(huán)境的實現步驟

    通過使用Docker,開發(fā)人員可以更容易地構建、測試和交付應用程序,同時減少了環(huán)境配置和依賴項管理的復雜性,本文主要介紹了Docker配置MySql環(huán)境的實現步驟,文中通過示例代碼介紹的非常詳細,感興趣的可以了解一下
    2024-02-02
  • windows server 2016安裝docker的方法步驟

    windows server 2016安裝docker的方法步驟

    這篇文章主要介紹了windows server 2016安裝docker的方法步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • docker搭建jenkins服務的示例

    docker搭建jenkins服務的示例

    這篇文章主要介紹了docker搭建jenkins服務的示例,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • 基于docker部署Oracle?19c的詳細記錄

    基于docker部署Oracle?19c的詳細記錄

    這篇文章主要介紹了基于docker部署Oracle?19c,包括拉取oracle?19c鏡像、查看鏡像及創(chuàng)建oracle?19c鏡像的容器問題,結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 詳解Docker修改容器端口映射的方法

    詳解Docker修改容器端口映射的方法

    這篇文章主要介紹了詳解Docker修改容器端口映射的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2006-11-11
  • docker容器日志查看常用命令及線上日志排查

    docker容器日志查看常用命令及線上日志排查

    這篇文章主要給大家介紹了關于docker容器日志查看常用命令及線上日志排查的相關資料, Docker是一種容器化技術,使用它的過程中需要查看Docker的日志輸出來調試或解決問題,需要的朋友可以參考下
    2024-01-01
  • docker搭建Zookeeper集群的方法步驟

    docker搭建Zookeeper集群的方法步驟

    本文主要介紹了docker搭建Zookeeper集群的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Docker部署Kafka以及Spring Kafka實現

    Docker部署Kafka以及Spring Kafka實現

    這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • docker-compose部署coredns如何實現自建DNS服務

    docker-compose部署coredns如何實現自建DNS服務

    本文介紹了如何在內網中使用自建的CoreDNS服務進行域名解析,通過配置Corefile和hosts文件,實現內部域名解析,無需在互聯網上注冊域名,使用docker-compose運行CoreDNS,并通過修改resolv.conf文件配置DNS服務
    2025-01-01
  • docker拉取鏡像查看版本的方法步驟

    docker拉取鏡像查看版本的方法步驟

    這篇文章主要介紹了docker拉取鏡像查看版本的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05

最新評論