亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用docker-compose搭建mysql主從詳細(xì)過程

 更新時間:2024年01月02日 09:51:11   作者:我敲BUG  
這篇文章主要給大家介紹了關(guān)于使用docker-compose搭建mysql主從的相關(guān)資料,Docker-Compose項目是Docker官方的開源項目,負(fù)責(zé)實現(xiàn)對Docker容器集群的快速編排,需要的朋友可以參考下

一、docker-compose和主從的簡介

1、docker-compose

Docker-Compose項目是Docker官方的開源項目,負(fù)責(zé)實現(xiàn)對Docker容器集群的快速編排 通過編寫docker-compose文件可對多個服務(wù)同時進(jìn)行啟動/停止/更新(可定義依賴,按順序啟動服務(wù))

2、mysql主從

以往創(chuàng)建的集群都是做同樣的事情,比如說創(chuàng)建了三臺服務(wù)器,那么客戶端發(fā)送了一條增加請求,那么就會隨機(jī)分配到三臺服務(wù)器其中一臺,

那么mysql集群不一樣,首先呢我們不叫它mysql集群,我們叫mysql主從,那么就有主服務(wù)器和從服務(wù)器這樣兩種概念,主服務(wù)器負(fù)責(zé)寫的操作,也就是增刪改,從服務(wù)器負(fù)責(zé)讀的操作,也就是查詢,如果說客戶端發(fā)送了一條增加的請求,那么就會把這條增加的請求給到主服務(wù)器,再由主服務(wù)器把數(shù)據(jù)同步到從服務(wù)器

3、為什么要使用docke-compose?

微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)一般包含若干個微服務(wù),每個微服務(wù)一般都會部署多 個實例,如果每個微服務(wù)都要手動啟停, 那么效率之低,維護(hù)量之大可想而知.而使用 Docker Compose 可以輕松、高效的管理容器, 它是一個用于定義和運(yùn)行多容器 Docker 的應(yīng)用程序工具,可以用來一鍵啟動所有服務(wù)器,一鍵關(guān)閉所有服務(wù)器,一鍵刪除所有服務(wù)器,非常方便。

二、部署mysql主從集群

1、mysql-master主庫

在宿主機(jī)中創(chuàng)建相關(guān)目錄,用于掛載容器的相關(guān)數(shù)據(jù)

mkdir -p /data/mysql-master/{conf,data}

上傳主數(shù)據(jù)庫容器的配置文件my.cnf到/data/mysql-master/conf目錄下

cd /data/mysql-master/conf

rz 上傳

文章所需要的文件我會放到結(jié)尾

2、mysql-slave從庫

 在宿主機(jī)中創(chuàng)建相關(guān)目錄,用于掛載容器的相關(guān)數(shù)據(jù)

mkdir -p /data/mysql-slave/{conf,data}

 上傳從數(shù)據(jù)庫容器的配置文件my.cnf到/data/mysql-slave/conf目錄下

cd /data/mysql-slave/conf

rz 上傳

這兩個文件里的內(nèi)容只有id是不一樣的

三、安裝docker-compose

1、上傳文件

安裝包剛下載過來是docker-compose-Linux-x86_64

需要將docker-compose-Linux-x86_64重命名為 docker-compose

將 docker-compose 文件上傳到虛擬機(jī) 的 /usr/local/bin/ 目錄下,這個目錄下的文件可以被全局使用到,

cd /usr/ocal/bin

2、添加可執(zhí)行權(quán)限

chmod +x /usr/local/bin/docker-compose

3、創(chuàng)建并編輯docker-compose.yml文件

可以使用默認(rèn)的名稱docker-compose.yml,因為要做MySQL的主從所以我把名字改成了docker-composemysql.yml

我們編輯yml文件可以在外部的工具先編輯在上傳,比如idea

 docker-composemysql.yml內(nèi)容如下:

# 版本號
version: '3'
# 定義服務(wù)
services:
  # 服務(wù)名
  mysql-master:
    # 容器名稱
    container_name: mysql-master
    # 鏡像
    image: mysql/mysql-server:5.7
    # 重啟
    restart: always
    # 提供偽終端
    tty: true
    # root具備管理員權(quán)限
    privileged: true
    # 環(huán)境變量
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    # 數(shù)據(jù)卷(目錄映射)
    volumes:
      - /data/mysql-master/conf/my.cnf:/etc/my.cnf
      - /data/mysql-master/data:/var/lib/mysql
    # 網(wǎng)絡(luò)
    networks:
      mynetwork:
        ipv4_address: 172.19.0.3
  # 服務(wù)名
  mysql-slave:
    # 容器名稱
    container_name: mysql-slave
    # 鏡像
    image: mysql/mysql-server:5.7
    # 重啟
    restart: always
    # 提供偽終端
    tty: true
    # root具備管理員權(quán)限
    privileged: true
    # 環(huán)境變量
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    # 數(shù)據(jù)卷(目錄映射)
    volumes:
      - /data/mysql-slave/conf/my.cnf:/etc/my.cnf
      - /data/mysql-slave/data:/var/lib/mysql
    # 網(wǎng)絡(luò)
    networks:
      mynetwork:
        ipv4_address: 172.19.0.4
# 定義所需要的網(wǎng)絡(luò)
networks:
  mynetwork:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.0.0/16

創(chuàng)建文件夾mysql把編輯號的yml文件上傳進(jìn)去

mkdir mysql

4、運(yùn)行docker-composeysql.yml

檢查

docker-compose -f docker-composemysql.yml config -q

檢查一下yml文件有沒有錯誤的地方,沒報錯就是沒有

運(yùn)行

 docker-compose -f docker-composemysql.yml up -d

四、配置mysql主從

1、進(jìn)入主庫容器配置遠(yuǎn)程連接

 docker exec -it mysql-master /bin/sh

2、登錄mysql主服務(wù)器

mysql -u root -p

輸入mysql密碼:123456  

3、查看主節(jié)點(diǎn)關(guān)鍵參數(shù)

記住 File 的值和 Position 的值(此值重啟后會變化),等會配置 slave 服務(wù)器的時候要用

 show master status;

4、給用戶授權(quán)并更新

    grant all privileges on *.* to root@'%' identified by '123456';
    flush privileges;

另外開一個窗口進(jìn)入從服務(wù)器

5、進(jìn)入從服務(wù)器

docker exec -it mysql-slave /bin/bash

6、登錄mysql從服務(wù)器

mysql -u root -p

輸入mysql密碼:123456  

7、配置主從復(fù)制

CHANGE MASTER TO MASTER_HOST='172.19.0.3', MASTER_PORT=3306, MASTER_USER='root',
MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154;

各參數(shù)說明:

master_host='172.19.0.3' // 這里填master主機(jī)ip,除了填寫住宿主機(jī)IP,還可以填寫bridge網(wǎng)絡(luò)中的IP
master_log_file='mysql-bin.000005', // 這里填寫 File 的值就是前面我們show master status;命令的執(zhí)行結(jié)果
master_log_pos=154;// 這里填寫 Position 的值就是前面我們show master status;命令的執(zhí)行結(jié)果

8、開啟主從復(fù)制

start slave;

9、查看連接狀態(tài)

show slave status\G

注1:這里只要看到兩個參數(shù)Slave_IO_Running和Slave_SQL_Running都為true,則表示復(fù)制是正常進(jìn)行的,到這里我們的主從結(jié)構(gòu)也就搭建完成了

注2:集群成功后,在mysql-master容器重啟后雖然File的值和Position的值會變化,但在mysql-slave可以進(jìn)行跟蹤,所以不需要重新進(jìn)行配置

五、測試主從服務(wù)

1、在主服務(wù)器創(chuàng)建一個數(shù)據(jù)庫

create databse test;

在使用 show databases;查看一下所以庫

2、在從服務(wù)器查看數(shù)據(jù)庫

show databases;

ok,已經(jīng)完成了數(shù)據(jù)的同步

六、將crm項目的數(shù)據(jù)庫通過命令導(dǎo)入主庫

在主服務(wù)器執(zhí)行

1、創(chuàng)建數(shù)據(jù)庫crm

create database crm;

2、把sql腳本上傳到主服務(wù)器的的數(shù)據(jù)目錄

 cd /data/mysql-master/data

文章所需要的文件我會放到結(jié)尾

3、選擇數(shù)據(jù)庫

use crm;

4、設(shè)置數(shù)據(jù)庫編碼(可選) 

set names utf8;

5、導(dǎo)入數(shù)據(jù)(注意sql文件的路徑)

 source /var/lib/mysql/crm.sql;

已提前將crm.sql文件上傳到了宿主機(jī)/data/mysql-master/data目錄

 使用show tables;查看剛剛導(dǎo)入的數(shù)據(jù)

 在從數(shù)據(jù)庫也查詢一下,也是有數(shù)據(jù)的,完成了數(shù)據(jù)同步

總結(jié)

到此這篇關(guān)于使用docker-compose搭建mysql主從的文章就介紹到這了,更多相關(guān)docker-compose搭建mysql主從內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker配置從私有倉庫拉取鏡像方式

    Docker配置從私有倉庫拉取鏡像方式

    本文詳細(xì)介紹了如何修改Docker配置文件以使用私有倉庫,并解決相關(guān)問題,包括配置文件的編輯、DNS設(shè)置、證書管理以及系統(tǒng)時間同步
    2025-03-03
  • 借助Docker搭建JMeter+Grafana+Influxdb監(jiān)控平臺的詳細(xì)教程

    借助Docker搭建JMeter+Grafana+Influxdb監(jiān)控平臺的詳細(xì)教程

    這篇文章主要介紹了借助Docker搭建JMeter+Grafana+Influxdb監(jiān)控平臺,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 用Docker作為PaaS的替代方案是否完美無缺

    用Docker作為PaaS的替代方案是否完美無缺

    Docker的出現(xiàn)似乎又帶來了一種新的選擇,而且對于開發(fā)者來說更加靈活、便捷、易用。既然用戶可以直接在Docker上運(yùn)行,PaaS是否還有應(yīng)用場景?面對企業(yè)繁雜的應(yīng)用環(huán)境,用Docker作為PaaS的替代方案是否完美無缺
    2016-11-11
  • Docker搭建自己的本地鏡像倉庫的步驟

    Docker搭建自己的本地鏡像倉庫的步驟

    今天小編就為大家分享一篇關(guān)于Docker搭建自己的本地鏡像倉庫的步驟,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Docker 查看鏡像信息的方法

    Docker 查看鏡像信息的方法

    這篇文章主要介紹了Docker 查看鏡像信息的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 如何清理無用的Docker鏡像和容器

    如何清理無用的Docker鏡像和容器

    文章介紹了如何清理無用的Docker鏡像和容器,以及如何使用DockerSwarm和Kubernetes進(jìn)行容器編排和擴(kuò)展,感興趣的朋友一起看看吧
    2025-02-02
  • docker 如何修改容器的端口

    docker 如何修改容器的端口

    正在運(yùn)行的容器端口沖突了,但是還需要這個容器,怎么辦?只能修改端口了,今天通過本文給大家介紹docker 如何修改容器的端口,感興趣的朋友一起看看吧
    2024-01-01
  • Docker 自動部署tomcat詳解

    Docker 自動部署tomcat詳解

    這篇文章主要介紹了Docker 自動部署tomcat詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Docker到底是什么?Docker為什么它這么火!

    Docker到底是什么?Docker為什么它這么火!

    Docker這種新的容器技術(shù)可謂熱得發(fā)燙,因為有了它,人們就有可能讓數(shù)量多得多的應(yīng)用程序在同樣的舊服務(wù)器上運(yùn)行;有了它,人們也很容易封裝和交付程序。本文旨在幫助你進(jìn)一步了解Docker
    2015-12-12
  • 快速安裝Docker詳細(xì)步驟教程

    快速安裝Docker詳細(xì)步驟教程

    這篇文章主要為大家詳細(xì)的介紹了快速安裝Docker的詳細(xì)步驟教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評論