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

使用docker-compose搭建mysql主從詳細過程

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

一、docker-compose和主從的簡介

1、docker-compose

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

2、mysql主從

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

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

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

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

二、部署mysql主從集群

1、mysql-master主庫

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

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

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

cd /data/mysql-master/conf

rz 上傳

文章所需要的文件我會放到結尾

2、mysql-slave從庫

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

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

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

cd /data/mysql-slave/conf

rz 上傳

這兩個文件里的內容只有id是不一樣的

三、安裝docker-compose

1、上傳文件

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

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

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

cd /usr/ocal/bin

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

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

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

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

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

 docker-composemysql.yml內容如下:

# 版本號
version: '3'
# 定義服務
services:
  # 服務名
  mysql-master:
    # 容器名稱
    container_name: mysql-master
    # 鏡像
    image: mysql/mysql-server:5.7
    # 重啟
    restart: always
    # 提供偽終端
    tty: true
    # root具備管理員權限
    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)絡
    networks:
      mynetwork:
        ipv4_address: 172.19.0.3
  # 服務名
  mysql-slave:
    # 容器名稱
    container_name: mysql-slave
    # 鏡像
    image: mysql/mysql-server:5.7
    # 重啟
    restart: always
    # 提供偽終端
    tty: true
    # root具備管理員權限
    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)絡
    networks:
      mynetwork:
        ipv4_address: 172.19.0.4
# 定義所需要的網(wǎng)絡
networks:
  mynetwork:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.0.0/16

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

mkdir mysql

4、運行docker-composeysql.yml

檢查

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

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

運行

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

四、配置mysql主從

1、進入主庫容器配置遠程連接

 docker exec -it mysql-master /bin/sh

2、登錄mysql主服務器

mysql -u root -p

輸入mysql密碼:123456  

3、查看主節(jié)點關鍵參數(shù)

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

 show master status;

4、給用戶授權并更新

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

另外開一個窗口進入從服務器

5、進入從服務器

docker exec -it mysql-slave /bin/bash

6、登錄mysql從服務器

mysql -u root -p

輸入mysql密碼:123456  

7、配置主從復制

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主機ip,除了填寫住宿主機IP,還可以填寫bridge網(wǎng)絡中的IP
master_log_file='mysql-bin.000005', // 這里填寫 File 的值就是前面我們show master status;命令的執(zhí)行結果
master_log_pos=154;// 這里填寫 Position 的值就是前面我們show master status;命令的執(zhí)行結果

8、開啟主從復制

start slave;

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

show slave status\G

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

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

五、測試主從服務

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

create databse test;

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

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

show databases;

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

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

在主服務器執(zhí)行

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

create database crm;

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

 cd /data/mysql-master/data

文章所需要的文件我會放到結尾

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

use crm;

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

set names utf8;

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

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

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

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

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

總結

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

相關文章

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

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

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

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

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

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

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

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

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

    Docker 查看鏡像信息的方法

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

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

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

    docker 如何修改容器的端口

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

    Docker 自動部署tomcat詳解

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

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

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

    快速安裝Docker詳細步驟教程

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

最新評論