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

Docker部署MySQL主從復(fù)制的實(shí)現(xiàn)

 更新時(shí)間:2023年10月18日 15:18:48   作者:山海一念  
本文主要介紹了Docker部署MySQL主從復(fù)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

平臺(tái)說明

  • 操作系統(tǒng):Windows 11
  • Docker:20.10.22
  • MySQL:8.0.32

一、Docker創(chuàng)建網(wǎng)絡(luò)

說明:方便后續(xù)MySQL主從連接

1. 創(chuàng)建網(wǎng)絡(luò)

docker network create net-mysql

2. 查看網(wǎng)絡(luò)

二、創(chuàng)建MySQL主從容器

1.拉取鏡像

docker pull mysql

2.查看鏡像

docker images

3.創(chuàng)建啟動(dòng)容器

創(chuàng)建MySQL主機(jī)

docker run -d -p 3310:3306 -v D:/ProgramData/docker_config/mysql/master/config:/etc/mysql/conf.d -v D:/ProgramData/docker_config/mysql/master/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --network net-mysql --name mysql-master mysql:latest

創(chuàng)建MySQL從機(jī)

docker run -d -p 3311:3306 -v D:/ProgramData/docker_config/mysql/slave-1/config:/etc/mysql/conf.d -v D:/ProgramData/docker_config/mysql/slave-1/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --network net-mysql --name mysql-slave-1 mysql:latest

查看容器是否啟動(dòng)成功

docker ps

三、主從配置

1.主機(jī)配置文件

在D:\ProgramData\docker_config\mysql\master\config文件夾下創(chuàng)建my.cnf

[mysqld]
#主服務(wù)器唯一ID
server-id=1
#啟用二進(jìn)制日志
log-bin=mysql-bin
#設(shè)置不要復(fù)制的數(shù)據(jù)庫(kù)(可設(shè)置多個(gè))
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#設(shè)置需要復(fù)制的數(shù)據(jù)庫(kù) 需要復(fù)制的主數(shù)據(jù)庫(kù)名字
binlog-do-db=db_test
#設(shè)置logbin格式
binlog_format=STATEMENT

2.從機(jī)配置文件

在D:\ProgramData\docker_config\mysql\slave-1\config文件夾下創(chuàng)建my.cnf

[mysqld]
#從服務(wù)器唯一ID
server-id=2
#啟用中繼日志
relay-log=mysql-relay

3.注意事項(xiàng)

編寫結(jié)束后,進(jìn)行對(duì)應(yīng)的容器中查看,以主機(jī)為例

進(jìn)入主機(jī)的bash

docker exec -it mysql-master bash

進(jìn)入啟動(dòng)容器時(shí)文件掛載的目錄

cd /etc/mysql/conf.d

當(dāng)前目錄下應(yīng)該是my.cnf.txt文件,需要修改文件名稱,并將my.cnf內(nèi)容復(fù)制到/etc/mysq目錄下的my.cnf文件中,才能生效

# 查看當(dāng)前目錄下的文件
ls

# 修改文件名
mv my.cnf.txt my.cnf

# 復(fù)制到/etc/mysql目錄下
cp my.cnf /etc/mysql/my.cnf

4.重啟容器

docker restart mysql-master mysql-slave-1

5.連接主從數(shù)據(jù)庫(kù) 主機(jī)配置

進(jìn)入主機(jī)的bash

docker exec -it mysql-master bash

在bash中連接mysql

mysql -uroot -p

創(chuàng)建用戶并授權(quán)

GRANT REPLICATION SLAVE ON *.* TO 'dev'@'%' IDENTIFIED BY '123456';

查看master狀態(tài)

show master status;

停在這里,不要在主機(jī)上執(zhí)行其他命令

從機(jī)配置

進(jìn)入從機(jī)的bash

docker exec -it mysql-slave-1 bash

連接mysql

mysql -uroot -p123456

在從機(jī)的mysql中執(zhí)行一下命令

CHANGE MASTER TO MASTER_HOST='172.19.0.2',
MASTER_USER='dev',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1325;

補(bǔ)充說明

獲取主機(jī)的IP地址

docker network inspect net-mysql

MASTER_PORT是3306,不是映射到宿主機(jī)的端口,千萬別搞錯(cuò)了

MASTER_LOG_FILE和MASTER_LOG_pOS的值對(duì)應(yīng)著主機(jī)最后一步操作的值

啟動(dòng)從機(jī)復(fù)制

在mysql中執(zhí)行

start slave;

查看從機(jī)狀態(tài)

show slave status\G;

Slave_IO_Running和Slave_SQL_Running顯示為Yes即為成功

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

MySQL主庫(kù)中執(zhí)行

create database db_test;
use db_test;
CREATE TABLE user ( id int UNSIGNED NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, age int NOT NULL, PRIMARY KEY (id) );
insert into user(name, age) values('Jack', 20);

MySQL從庫(kù)中查詢

show databases;

use db_test;
show tables;

select * from user;

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

相關(guān)文章

  • Docker服務(wù)器存儲(chǔ)資源池不足的問題解決

    Docker服務(wù)器存儲(chǔ)資源池不足的問題解決

    這篇文章主要給大家介紹了關(guān)于Docker服務(wù)器存儲(chǔ)資源池不足的問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    這篇文章主要介紹了Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Dockerfile的CMD與ENTRYPOINT的區(qū)別

    Dockerfile的CMD與ENTRYPOINT的區(qū)別

    CMD和ENTRYPOINT的區(qū)別在于CMD提供默認(rèn)的執(zhí)行指令,而ENTRYPOINT定義容器啟動(dòng)時(shí)運(yùn)行的命令,下面就來詳細(xì)的介紹一下這兩者的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • docker?部署?gitlab-ce?16.9.1的詳細(xì)過程

    docker?部署?gitlab-ce?16.9.1的詳細(xì)過程

    Docker是一個(gè)開源的應(yīng)用容器引擎,它允許開發(fā)者將應(yīng)用及其依賴打包到一個(gè)可移植的容器中,然后發(fā)布到任何支持Docker的Linux或Windows操作系統(tǒng)上,這篇文章主要介紹了docker?部署gitlab-ce?16.9.1的詳細(xì)過程,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-04-04
  • Docker打包自定義鏡像的實(shí)現(xiàn)

    Docker打包自定義鏡像的實(shí)現(xiàn)

    本文主要介紹了在Docker中打包自定義鏡像,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫(kù)的方法

    MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • centos6使用docker部署zookeeper操作示例

    centos6使用docker部署zookeeper操作示例

    這篇文章主要介紹了centos6使用docker部署zookeeper操作,結(jié)合實(shí)例形式分析了centos6平臺(tái)使用docker部署zookeeper相關(guān)命令與使用技巧,需要的朋友可以參考下
    2020-02-02
  • Docker容器進(jìn)行健康檢查的三種方式

    Docker容器進(jìn)行健康檢查的三種方式

    這篇文章主要介紹了如何對(duì)Docker容器進(jìn)行健康檢查,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Docker鏡像構(gòu)建的兩種方法解析

    Docker鏡像構(gòu)建的兩種方法解析

    這篇文章主要為大家詳細(xì)介紹了Docker鏡像構(gòu)建的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • docker常用命令總結(jié)之安裝、鏡像、容器基本操作

    docker常用命令總結(jié)之安裝、鏡像、容器基本操作

    這篇文章主要介紹了docker常用命令總結(jié)之安裝、鏡像、容器基本操作,需要的朋友可以參考下
    2017-05-05

最新評(píng)論