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

docker實(shí)現(xiàn)MySQL主從雙備的示例代碼

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

環(huán)境配置

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

MySQL基礎(chǔ)知識(shí)

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

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

在這里插入圖片描述


在MySQL中,/etc/mysql/my.cnf 是默認(rèn)配置文件,/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默認(rèn)使用/etc/mysql/my.cnf的配置文件,如果要自定義配置文件,需要進(jìn)入docker的MySQL獲取默認(rèn)配置文件/etc/mysql/my.cnf的配置信息,然后在本地系統(tǒng)的/home/mysql/conf編寫配置文件。
假設(shè)主MySQL的容器名稱為mysql10 ,docker啟動(dòng)指令如下:

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

進(jìn)入docker獲取MySQL默認(rèn)配置信息方法如下:

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

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

在這里插入圖片描述

將上圖的配置信息寫入本地系統(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
# 開啟二進(jìn)制日志,屬性值mysql-bin 是日志的基本名或前綴名
log-bin=mysql-bin
# server-id可隨便設(shè)置,但必須保證是唯一,數(shù)值為1到2的32次方–1之間的一個(gè)正整數(shù)
server-id=2

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

搭建從MySQL

假設(shè)主MySQL的容器名稱為mysql11,docker啟動(dòng)指令如下:

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
# 開啟二進(jìn)制日志,屬性值mysql-bin 是日志的基本名或前綴名
log-bin=mysql-bin
# server-id可隨便設(shè)置,但必須保證是唯一,數(shù)值為1到2的32次方–1之間的一個(gè)正整數(shù)
server-id=3

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

配置主從復(fù)制

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

-- 監(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語(yǔ)句之后,在查詢結(jié)果找到Slave_IO_Running和Slave_SQL_Running,如果兩個(gè)字段的值皆為Yes則說(shuō)明配置成功,如圖所示:

在這里插入圖片描述

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

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

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

拓展

至此,我們已完成2臺(tái)MySQL服務(wù)的主從雙備功能(從復(fù)制主),功能測(cè)試可以在Navicat Premium 15自行測(cè)試。
此外還可以實(shí)現(xiàn)主從互備(從復(fù)制主,主復(fù)制從)、搭建多臺(tái)MySQL的主從關(guān)系等功能,這些功能主要在配置文件my.cnf添加相應(yīng)配置屬性和執(zhí)行對(duì)應(yīng)SQL語(yǔ)句。

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

相關(guān)文章

  • docker官方mysql鏡像自定義配置詳解

    docker官方mysql鏡像自定義配置詳解

    這篇文章主要介紹了docker官方mysql鏡像自定義配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • docker安裝并持久化postgresql數(shù)據(jù)庫(kù)的操作步驟

    docker安裝并持久化postgresql數(shù)據(jù)庫(kù)的操作步驟

    這篇文章主要介紹了docker安裝并持久化postgresql數(shù)據(jù)庫(kù)的操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 如何用docker部署kafka

    如何用docker部署kafka

    本文詳細(xì)介紹了使用Docker快速搭建Kafka集群的步驟,包括選用wurstmeister/kafka鏡像、配置文件修改、集群?jiǎn)?dòng)與管理,適合需要在Docker環(huán)境中部署Kafka的開發(fā)者參考
    2024-09-09
  • 詳解Docker如何啟動(dòng)一個(gè)Centos鏡像

    詳解Docker如何啟動(dòng)一個(gè)Centos鏡像

    本篇文章主要介紹了詳解Docker如何啟動(dòng)一個(gè)Centos鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • docker下的 redis 之持久化存儲(chǔ)詳解

    docker下的 redis 之持久化存儲(chǔ)詳解

    這篇文章主要介紹了docker下的 redis 之持久化存儲(chǔ)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Docker之cAdvisor的安裝使用方式

    Docker之cAdvisor的安裝使用方式

    這篇文章主要介紹了Docker之cAdvisor的安裝使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用非root用戶安裝及啟動(dòng)docker的問(wèn)題(rootless模式運(yùn)行)

    使用非root用戶安裝及啟動(dòng)docker的問(wèn)題(rootless模式運(yùn)行)

    docker是使用--userns-remap容器用戶映射宿主機(jī)用戶的方式來(lái)解決問(wèn)題,用戶和組的映射由兩個(gè)配置文件來(lái)控制,分別是/etc/subuid和/etc/subgid,本文給大家介紹非root用戶啟動(dòng)docker的問(wèn)題,感興趣的朋友一起看看吧
    2022-05-05
  • 詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件

    詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件

    這篇文章主要介紹了詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 為docker中的nginx配置https的方法步驟

    為docker中的nginx配置https的方法步驟

    這篇文章主要介紹了為docker中的nginx配置https的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 一文講解如何查看一個(gè)docker鏡像有哪些版本

    一文講解如何查看一個(gè)docker鏡像有哪些版本

    這篇文章主要給大家介紹了關(guān)于如何查看一個(gè)docker鏡像有哪些版本的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用docker具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

永定县| 桐柏县| 富顺县| 改则县| 公安县| 台州市| 望奎县| 顺昌县| 铁力市| 会昌县| 胶州市| 郁南县| 吕梁市| 城步| 长宁区| 博客| 油尖旺区| 东莞市| 静安区| 武隆县| 蚌埠市| 紫阳县| 固安县| 巴青县| 曲周县| 邛崃市| 正宁县| 湘潭市| 灌南县| 商水县| 焉耆| 来凤县| 四子王旗| 吉安市| 延边| 环江| 五华县| 甘洛县| 海宁市| 达州市| 屯昌县|