1. 程式人生 > >docker 配置mysql主從複製

docker 配置mysql主從複製

一 前提條件

1 具有docker環境的centos7

yum install docker
service docker start

2 mysql映象(版本5.5以上,本文采用8.0)

docker pull mysql:8.0

二 mysql叢集配置檔案

1  建立配置集結構如下


mkdir -p /home/data/mysql/data/master
mkdir -p /home/data/mysql/data/slave
mkdir -p /home/data/mysql/master
mkdir -p /home/data/mysql/slave

2 建立節點配置檔案(master.cnf與slave.cnf)

cd /home/data/mysql/master
vi master.cnf
cd /home/data/mysql/slave
vi slave.cnf

內容如下

[mysqld]
server-id=1   #任意自然數n,只要保證兩臺MySQL主機不重複就可以了。
log-bin=mysql-bin   #開啟二進位制日誌
#auto_increment_increment=2   #步進值auto_imcrement。一般有n臺主MySQL就填n
#auto_increment_offset=1   #起始值。一般填第n臺主MySQL。此時為第一臺主MySQL
#binlog-ignore=mysql   #忽略mysql庫【我一般都不寫】
#binlog-ignore=information_schema   #忽略information_schema庫【我一般都不寫】
#replicate-do-db=aa   #要同步的資料庫,預設所有庫

三、搭建mysql環境

1 為mysql容器建立專有橋接網路,以便固定mysql容器ip

docker network create --driver bridge --subnet 172.25.0.0/16 mysql_net
備註:建立橋接網絡卡 mysql_net 指定自網段為172.25.0.0  如果不指定ip則與docker容器的docker0網絡卡同網段


2 建立mysql容器

(1) master 

docker create 
--privileged=true                               #為容器掛載目錄新增許可權
--name mysqlmaster                              #容器名為mysqlmaster
-v /home/data/mysql/data/master:/var/lib/mysql  #叢集配置集中/data/master 掛載到容器/var/lib/mysql
-v /home/data/mysql/master:/etc/mysql/conf.d    #配置集中/master 中master.cnf 掛載到 /etc/mysql/conf.d中設定啟動
-e MYSQL_ROOT_PASSWORD=root                     #設定啟動密碼
--net mysql_net                                 #指定容器連線網路
--ip 172.25.0.3                                 #指定容器使用ip
-p 3307:3306 mysql:8.0                          #指定主機對映到容器埠  即 主機訪問centos7 為3307   容器埠為3306

備註:上面#號後需要刪除

(2)salve

docker create 
--privileged=true 
--name mysqlslave 
-v /home/data/mysql/data/slave:/var/lib/mysql 
-v /home/data/mysql/salve:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root 
--net mysql_net 
--ip 172.25.0.2 
-p 3308:3306 mysql:8.0

備註:同上

3 啟動容器

docker start mysqlsalve
docker start mysqlmaster

檢視執行狀態

docker ps -a

檢視容器ip

docker network inspect mysql_net


4 容器設定遠端訪問

docker exec -it mysqlmaster /bin/bash

使用容器ip登入 並輸入密碼

mysql -u root -p  -h 172.25.0.3

修改root帳號密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

備註:同理進入另一個容器相同操作

5 使用navicat在主機(非centos7)登入mysql容器


備註:容器ip為docker容器內部路由使用,虛擬機器ip為外部主機入口,可以通過橋接訪問到容器

四 啟動mysql主從

1  進入master 賦許可權 以及查詢master 的日誌檔案 以及位置

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by 'root'; --賦許可權給root使用者
flush privileges; --重新整理許可權

show master status; 

2  進入slave 設定slave配置以及啟動slave

change master to 
master_host='172.25.0.3',     --master的ip  不能為127.0.0.1
master_user='root',           --master的帳號密碼
master_password='root',
master_log_file='mysql-bin.000003', --master 查詢的file名  注意上面!
master_port=3306,                   --master 埠 坑!為容器埠 不是主機埠
master_log_pos=596;                 --日誌檔案位置  注意上面!
start slave;
show slave status;

備註:主從同步啟動標誌  若出現cennecting to master  則有錯誤 請自己查詢

3 驗證主從

主庫建立任何資料,從庫隨即更新!



祝你成功!


相關推薦

docker 配置mysql主從複製

一 前提條件1 具有docker環境的centos7yum install docker service docker start2 mysql映象(版本5.5以上,本文采用8.0)docker pull mysql:8.0二 mysql叢集配置檔案1  建立配置集結構如下m

win10 使用Docker配置mysql主從複製

開發十年,就只剩下這套架構體系了! >>>   

[超入門]使用dockermysql主從複製實驗

簡介 本文主要介紹如何使用docker快速搭建實驗環境,熟悉mysql主從複製配置。 環境 docker 17.12.1-ce docker-compose 1.19.0 docker-compose.yml 一個主資料庫 一個從資料庫 主從

從零開始,通過docker實現mysql 主從複製,主主複製,圖文並茂,保證可以實現!

建立docker 容器(可以根據一個映象建立多個容器) docker run -tid 映象ID/usr/sbin/init //centos7版本。使用/usr/sbin/init解決systemctl報錯不能使用的問題docker run -tid 映象ID/bin/bash //非cen

從零開始,通過docker實現mysql 主從複製,圖文並茂,保證可以實現!

   1.安裝映象          第一次實現docker實現mysql 主從複製的時候,各種百度,各種熱折騰,用了業餘幾天時間才實現!!現在把實現的詳細過程,全部寫出來,希望參對大家有所幫助。首先,準備好環境,映象:CentOS-7-x86_64-DVD-1503-01.iso。用虛擬機器安裝,我的

基於Docker搭建MySQL主從複製

搭建環境Centos 7.2 64位MySQL 5.7.13Docker 1.13.1接下來,我們將會在一臺伺服器上安裝docker,並使用docker執行三個MySQL容器,分別為一主兩從。安裝docker執行命令[root@VM_0_17_centos ~]# yum install docker如果有提

docker安裝mysql主從複製

參與文獻 http://blog.csdn.net/qq362228416/article/details/48569293 docker 安裝mysql主從備份 下載mysql映象  我們獲取最新映象 環境準備如下: 伺服器:  我的伺服器ip: 47.94.

Docker配置mysql主從實現讀寫分離

1. 獲取mysql映象獲取映象$ sudo docker pull mysql 檢視映象$ sudo docker images REPOSITORY TAG IMAGE ID CREATED

通過docker實現mysql主從複製

show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event

ubuntu環境下配置mysql主從複製

我是在VMWare虛擬機器的Ubuntu 16.04上進行的測試,步驟如下 1、依次下載安裝MySQL,我使用的是 sudo apt-get install mysql-server mysql-client線上安裝  2、在主從的終端分別輸入  vim /etc/mys

使用docker配置mysql主從資料庫

docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL

window 配置mysql主從複製

一、安裝mysql 1、解壓安裝包,放在任意哪個盤裡 2、配置mysql變數環境(右擊我的電腦點選屬相,進入高階系統設定,在環境變數裡面找到並修改PATH  在PATH的結尾處  新增; D:\MysqlServer5.6\bin【我的路徑】) 3、D:\MysqlSe

在vmware中使用docker搭建mysql主從複製 --步步為營

拉取mysql映象#docker pull daocloud.io/library/mysql:5.7.7檢視映象啟動master和slave容器docker run -it -p  3306:3306 -e  MYSQL_ROOT_PASSWORD=123456 --nam

docker配置mysql主從與django實現讀寫分離

一、搭建主從mysql環境 1 下載mysql映象 docker pull mysql:5.7 2 執行剛下載的mysql映象檔案 # 執行該命令之前可以使用`docker images`是否下載成功 docker run -p 3307:3306 --name mysql-master -v /mysql

Docker搭建MySQL主從複製

# Docker搭建MySQL主從複製 1. ##### 主從伺服器上分別安裝Docker 1.1 Docker 要求 CentOS 系統的核心版本高於 3.10 ```shell [root@localhost ~]# uname -r 3.10.0-693.el7

Docker進行MySQL主從複製操作

>Docker的相關操作 與 Docker下MySQL容器的安裝 https://www.cnblogs.com/yumq/p/14253360.html >本次實驗我是在單機狀態下進行mysql的主從複製,和多機的原理一樣 # 準備多個mysql容器 > 相關引數 ```txt --name 容器的名稱命

docker配置mysql 主從

see 記錄 lan doc mysqld erro repl clu serve 本機docker下配置mysql主從 首先安裝docker mysql容器 $ docker pull mysql:5.6 拉取兩個相同版本mysql 分別啟動mysql 並設置root

mysql主從複製配置!轉!最簡!親測可用!18年11月21日

轉發地址:https://blog.csdn.net/deeplearnings/article/details/78398526   1、主從伺服器分別作以下操作:   1.1、版本一致   1.2、初始化表,並在後臺啟動mysql   1.3、修改

Docker Mysql 主從複製+讀寫分離

整體規劃 host ----------- ip--------------------port---------------------說明 -----------------192.168.100.30 10088 Keepalived-VIP Proxysql-21 192.168

mysql主從複製詳細配置說明

主從資料庫配置的前題是:兩個資料庫的版本要一致 1、修改主MySQL的配置  如主資料庫的IP: 192.168.1.72 [[email protected] etc] vi /home/rpm/mysql/mysql5.5/my.cnf 新增以下配