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

一文教會(huì)你在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制

 更新時(shí)間:2022年11月29日 09:20:23   作者:小曾同學(xué).com  
MySQL的主從復(fù)制之前也沒(méi)做過(guò),剛百度了下發(fā)現(xiàn)并不算難,所以下面這篇文章主要給大家介紹了關(guān)于在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下

一 主從復(fù)制概念

在數(shù)據(jù)庫(kù)中主從復(fù)制``表示有一個(gè)主數(shù)據(jù)庫(kù),多個(gè)從數(shù)據(jù)庫(kù),即,主數(shù)據(jù)庫(kù)對(duì)外提供讀寫(xiě)功能,從數(shù)據(jù)庫(kù)對(duì)外提供讀的功能。
Mysql默認(rèn)采用異步復(fù)制方式,這樣從節(jié)點(diǎn)不用一直訪問(wèn)主服務(wù)器來(lái)更新自己的數(shù)據(jù),數(shù)據(jù)的更新可以實(shí)時(shí)在遠(yuǎn)端進(jìn)行。

二 主從復(fù)制的優(yōu)勢(shì)

  • 高可用,可用于故障切換,如果主庫(kù)掛了,則可以切到從庫(kù)
  • 讀寫(xiě)分離,減少主庫(kù)壓力,從而提高性能,主庫(kù)負(fù)責(zé)寫(xiě),從庫(kù)負(fù)責(zé)讀
  • 可備份數(shù)據(jù),避免影響業(yè)務(wù)

三 Docker容器實(shí)現(xiàn)Mysql主從復(fù)制

下面開(kāi)始進(jìn)入實(shí)戰(zhàn)環(huán)節(jié),一步步的教大家如何搭建主從數(shù)據(jù)庫(kù),小伙伴趕快練習(xí)一下吧。

3.1 創(chuàng)建主服務(wù)器容器

主服務(wù)器端口號(hào)為3307

docker run -p 3307:3306 --name mysql-master \
-v /Users/zengzhaoxia/mydata/mysql-master/log:/var/log/mysql \
-v /Users/zengzhaoxia/mydata/mysql-master/data:/var/lib/mysql \
-v /Users/zengzhaoxia/mydata/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

創(chuàng)建完成之后,別忘記再 docker ps一下,確保是否創(chuàng)建成功

補(bǔ)充:如果MYSQL_ROOT_PASSWORD的密碼設(shè)置為root,當(dāng)?shù)卿洈?shù)據(jù)庫(kù)時(shí)可能會(huì)報(bào)和權(quán)限相關(guān)的錯(cuò)誤,所以,不妨將密碼改為數(shù)字試試,比如123456。

3.2 新建主配置文件 my.cnf

進(jìn)入/mydata/mysql-master/conf目錄下新建my.cnf,my.cnf 內(nèi)容如下:

[mysqld]
## 設(shè)置server_id,同一局域網(wǎng)中需要唯一
server_id=101
##指定不需要同步的數(shù)據(jù)庫(kù)名稱(chēng)
binlog-ignore-db=mysql
##開(kāi)啟二進(jìn)制日志功能
log-bin=mall-mysql-bin
## 設(shè)置二進(jìn)制日志使用內(nèi)存大?。ㄊ聞?wù))
binlog_cache_size=1M
## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row)
binlog_format=mixed
## 二進(jìn)制日志過(guò)期清理時(shí)間,默認(rèn)值為0,表示不自動(dòng)清理
expire_logs_days=7
## 跳過(guò)主從復(fù)制中遇到的所有錯(cuò)誤或指定類(lèi)型的錯(cuò)誤,避免slave端復(fù)制中斷。
## 如:1062 錯(cuò)誤是指一些主鍵重復(fù),1032錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫(kù)數(shù)據(jù)不一致
slave_skip_errors=1062

切記切記,此處一定是 [mysqld],不要寫(xiě)成了[mysql]。

3.3 重啟master容器實(shí)例

因?yàn)榈诙叫薷牧伺渲梦募?,所以需要重啟docker容器

docker restart mysql-master
docker ps

3.4 進(jìn)入mysql-master容器

進(jìn)入mysql-master容器,并登錄數(shù)據(jù)庫(kù),可以看到當(dāng)前有哪些默認(rèn)的數(shù)據(jù)庫(kù)。

docker exec -it mysql-master /bin/bash
mysql -uroot -p
show databases;

3.5 在主服務(wù)器中創(chuàng)建用戶并授權(quán)

##1. 建立用戶
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
##2. 授權(quán)
mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';

3.6 創(chuàng)建從服務(wù)器容器

從服務(wù)器容器的端口號(hào)為:3308

docker run -p 3308:3306 --name mysql-slave \
-v /Users/zengzhaoxia/mydata/mysql-slave/log:/var/log/mysql \
-v /Users/zengzhaoxia/mydata/mysql-slave/data:/var/lib/mysql \
-v /Users/zengzhaoxia/mydata/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

創(chuàng)建完成之后,別忘記再 docker ps一下,確保是否創(chuàng)建成功

3.7 新建主配置文件 my.cnf

進(jìn)入/mydata/mysql-slave/conf目錄下新建my.cnf,my.cnf內(nèi)容如下:

[mysqld]
## 設(shè)置server_id,同一局域網(wǎng)中需要唯一
server_id=102
##指定不需要同步的數(shù)據(jù)庫(kù)名稱(chēng)
binlog-ignore-db=mysql
##開(kāi)啟二進(jìn)制日志功能,以備slave作為其他數(shù)據(jù)庫(kù)實(shí)例的master時(shí)使用
log-bin=mall-slave1-bin
## 設(shè)置二進(jìn)制日志使用內(nèi)存大?。ㄊ聞?wù))
binlog_cache_size=1M
## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row)
binlog_format=mixed
## 二進(jìn)制日志過(guò)期清理時(shí)間,默認(rèn)值為0,表示不自動(dòng)清理
expire_logs_days=7
## 跳過(guò)主從復(fù)制中遇到的所有錯(cuò)誤或指定類(lèi)型的錯(cuò)誤,避免slave端復(fù)制中斷。
## 如:1062 錯(cuò)誤是指一些主鍵重復(fù),1032錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫(kù)數(shù)據(jù)不一致
slave_skip_errors=1062
## relay_log配置中繼日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave將復(fù)制事件寫(xiě)進(jìn)自己的二進(jìn)制日志
log_slave_updates=1
## slave 設(shè)置為只讀(具有super權(quán)限的用戶除外)
read_only=1

3.8 重啟slave容器實(shí)例

因?yàn)樾薷牧伺渲?,所以需要重?slave 實(shí)例

docker restart mysql-slave
docker ps

3.9 在主數(shù)據(jù)庫(kù)中查看主從同步狀態(tài)

在主服務(wù)器中輸入如下命令:

mysql> show master status;

3.10 進(jìn)入mysql-slave容器

docker exec -it mysql-slave /bin/bash

3.11 在從數(shù)據(jù)庫(kù)中配置主從復(fù)制

change master to master_host='100.100.32.185',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000002',master_log_pos=617,master_connect_retry=30;

其中,

字段含義
master_host主數(shù)據(jù)庫(kù)的IP地址
master_port主數(shù)據(jù)庫(kù)的運(yùn)行端口
master_user在主數(shù)據(jù)庫(kù)創(chuàng)建的用于同步數(shù)據(jù)的用戶賬號(hào)
master_password在主數(shù)據(jù)庫(kù)創(chuàng)建的用于同步數(shù)據(jù)的用戶密碼
master_log_file指定從數(shù)據(jù)庫(kù)要復(fù)制數(shù)據(jù)的日志文件,通過(guò)查看主數(shù)據(jù)的狀態(tài),獲取file參數(shù)
master_log_pos指定從數(shù)據(jù)庫(kù)從哪個(gè)位置開(kāi)始復(fù)制數(shù)據(jù),通過(guò)查看主數(shù)據(jù)的狀態(tài),獲取Position參數(shù)
master_connect_retry連接失敗重試的時(shí)間間隔,單位為秒

3.12 在從數(shù)據(jù)庫(kù)中查看主從同步狀態(tài)

mysql> show slave status \G;
## 加入 \G表示 豎排以鍵值對(duì)的形式顯示,主要觀察Slave_IO_Running和Slave_SQL_Running

3.13 在從數(shù)據(jù)庫(kù)中開(kāi)啟主從同步

在從數(shù)據(jù)庫(kù)中操作,表示從數(shù)據(jù)庫(kù)同意接收數(shù)據(jù)

start slave;

3.14 查看從數(shù)據(jù)庫(kù)狀態(tài)是否同步

show slave status \G;

3.15 主從復(fù)制測(cè)試

驗(yàn)證主要分為兩步,第一步在主數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù),第二步在從數(shù)據(jù)庫(kù)中查看數(shù)據(jù)。

1. 在主數(shù)據(jù)庫(kù)中新建數(shù)據(jù)庫(kù)db01,并在db01中新建表t1,并插入數(shù)據(jù)
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'zeng');

2. 在從數(shù)據(jù)庫(kù)中查詢(xún)
show databases;//會(huì)看到db01數(shù)據(jù)庫(kù)
use db01;
select * from t1;

總結(jié)

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

相關(guān)文章

  • 解決Docker Image鏡像無(wú)法刪除問(wèn)題的方法

    解決Docker Image鏡像無(wú)法刪除問(wèn)題的方法

    這篇文章主要給大家介紹了關(guān)于如何解決Docker Image鏡像無(wú)法刪除問(wèn)題的方法,文中通過(guò)示例代碼將解決的方法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    RustDesk 是一款可以平替 TeamViewer 的開(kāi)源軟件,旨在提供安全便捷的自建方案,這篇文章主要介紹了docker自建rustdesk-server遠(yuǎn)程桌面的解決方案,需要的朋友可以參考下
    2024-07-07
  • 使用Docker快速安裝grafana的基本步驟

    使用Docker快速安裝grafana的基本步驟

    Grafana 是一個(gè)強(qiáng)大的開(kāi)源監(jiān)控和數(shù)據(jù)分析平臺(tái),它能夠與各種數(shù)據(jù)源集成,并提供靈活的可視化和儀表盤(pán)功能,下面給大家分享Docker 中安裝 Grafana 的基本步驟,感興趣的朋友一起看看吧
    2024-01-01
  • Docker中Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用

    Docker中Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用

    本文介紹了Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Docker執(zhí)行DockerFile構(gòu)建過(guò)程指令解析

    Docker執(zhí)行DockerFile構(gòu)建過(guò)程指令解析

    這篇文章主要為大家介紹了Docker執(zhí)行DockerFile構(gòu)建過(guò)程及DockerFile的指令解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪<BR>
    2022-04-04
  • Docker如何更換鏡像源提高拉取速度

    Docker如何更換鏡像源提高拉取速度

    在國(guó)內(nèi),由于網(wǎng)絡(luò)政策和限制,直接訪問(wèn)DockerHub速度很慢,尤其是在拉取大型鏡像時(shí),為了解決這個(gè)問(wèn)題,常用的方法就是更換鏡像源,本文將詳細(xì)介紹如何更換Docker鏡像源,并提供當(dāng)前可用的鏡像源,感興趣的朋友一起看看吧
    2025-04-04
  • docker的一些基本指令

    docker的一些基本指令

    這篇文章主要介紹了docker的一些常用操作,幫助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下
    2021-04-04
  • 詳解docker國(guó)內(nèi)鏡像拉取和鏡像加速registry-mirrors配置修改

    詳解docker國(guó)內(nèi)鏡像拉取和鏡像加速registry-mirrors配置修改

    由于國(guó)內(nèi)訪問(wèn)直接訪問(wèn)Docker hub網(wǎng)速比較慢,拉取鏡像的時(shí)間就會(huì)比較長(zhǎng)。一般我們會(huì)使用鏡像加速或者直接從國(guó)內(nèi)的一些平臺(tái)鏡像倉(cāng)庫(kù)上拉取
    2017-05-05
  • docker啟動(dòng)rabbitmq以及使用方式詳解

    docker啟動(dòng)rabbitmq以及使用方式詳解

    RabbitMQ是一個(gè)由erlang開(kāi)發(fā)的消息隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于docker啟動(dòng)rabbitmq以及使用的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • docker測(cè)試時(shí)候命令無(wú)法補(bǔ)全的解決方法

    docker測(cè)試時(shí)候命令無(wú)法補(bǔ)全的解決方法

    因?yàn)樽罱趯W(xué)習(xí)使用Docker,所以出現(xiàn)了好多的問(wèn)題,昨天遇到的一個(gè)問(wèn)題是在docker測(cè)試時(shí)候發(fā)現(xiàn)命令無(wú)法補(bǔ)全,通過(guò)查找資料最后解決了,現(xiàn)在將方法分享給有需要的人,大家可以參考學(xué)習(xí)。
    2016-11-11

最新評(píng)論

石景山区| 嘉兴市| 鄯善县| 微山县| 大城县| 新津县| 科技| 大宁县| 景东| 肥东县| 吴川市| 云阳县| 祁连县| 自贡市| 宝鸡市| 贵南县| 天津市| 司法| 舞阳县| 宁强县| 方城县| 方正县| 青冈县| 宁夏| 新田县| 安乡县| 陈巴尔虎旗| 麻阳| 澄迈县| 宁安市| 丹东市| 珠海市| 伽师县| 桐城市| 清水河县| 许昌县| 阿城市| 江西省| 乌拉特前旗| 中西区| 永州市|