Docker實戰:mysql主從備份讀寫分離,dockermysql

來源:互聯網
上載者:User

Docker實戰:mysql主從備份讀寫分離,dockermysql

1)下載msql鏡像檔案

docker pull mysql/mysql-server

也可以指定mysql版本

docker pull mysql/mysql-server:5.7

查看鏡像檔案
docker images

2)設定目錄
為了使MySql的資料保持在宿主機上,我們先建立幾個目錄。
建立資料庫儲存目錄
mkdir -pv /root/docker/mysql/data
在data目錄下建立 master和slave目錄,用於儲存資料庫檔案。

建立主伺服器的配置目錄
mkdir -pv /root/docker/mysql/master

建立從伺服器的配置目錄
mkdir -pv /root/docker/mysql/slave

3)設定主從伺服器配置
vi ./master/master.cnf
代碼如下:

[mysqld]log-bin=mysql-binserver-id=101

vi ./slave/slave.cnf
代碼如下:

[mysqld]log-bin=mysql-binserver-id=102

注意:從庫裡的server-id必須是數字類型。

4)建立主從伺服器容器

docker create --name master -v /root/docker/mysql/data/master:/var/lib/mysql -v /root/docker/mysql/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7docker create --name slave -v /root/docker/mysql/data/slave:/var/lib/mysql -v /root/docker/mysql/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 mysql:5.7

啟動容器

docker start masterdocker start slave 

5)登入主伺服器的mysql,查詢master的狀態
進入msql容器

docker exec -it cdd15f7b189b /bin/bash


登入msql服務

myql -u root -p


在master msql上查詢ip

ip addr

show master status;


記錄ip、File、Position

master庫上執行,建立資料同步的使用者
SET sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
GRANT REPLICATION SLAVE ON . to backup@’%’ identified by ‘123456’;

6)登入從伺服器的mysql,設定與主伺服器相關的配置參數

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));change master to master_host='172.17.0.2',master_user='backup',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=154;

說明:
master_host為mysql容器master裡的地址,不能寫127.0.0.1
master_user是在主庫建立的使用者
master_log_pos是主庫show master status;查詢出的Position

啟動slave服務

start slave;

slave庫上查看主從狀態

show slave status;


如果Slave_IO_State是Waiting for master to send event 就是成功了,如果是
Connecting to master 多半是串連不通,需要檢查配置是否有問題,通過是ip,File、Position配置得不對。

7)在主庫上建立資料庫、表觀察從庫上是否會同步過去
在宿主機上查看IP

使用mysql用戶端Navicat串連主庫和從庫,IP是宿主機的IP,連接埠是建立容器時映射的3306,3316,使用者名稱是admin,密碼123456,登入後可在主庫建立資料庫,建立表,在從程式庫重新整理後可看到在主庫建立的庫和表。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.