博客
关于我
Docker搭建分布式MySQL主从服务
阅读量:399 次
发布时间:2019-03-05

本文共 2233 字,大约阅读时间需要 7 分钟。

在Docker中配置MySQL主从复制环境

1. 安装并配置Docker环境

首先,我们需要创建一个docker-compose.yml文件来配置MySQL主从服务器的环境。以下是具体步骤:

创建配置文件

mkdir mysql_servercd mysql_serversudo vim docker-compose.yml

配置文件说明

version: "3"services:  mysql_1:    image: mysql:5.7    ports:      - "3306:3306"    volumes:      - "/root/mysql_server/node1/data:/var/lib/mysql"      - "/root/mysql_server/node1/conf.d:/etc/mysql/conf.d"    environment:      - MYSQL_ROOT_PASSWORD=123456    restart: always  mysql_2:    image: mysql:5.7    ports:      - "3307:3306"    volumes:      - "/root/mysql_server/node2/data:/var/lib/mysql"      - "/root/mysql_server/node2/conf.d:/etc/mysql/conf.d"    environment:      - MYSQL_ROOT_PASSWORD=123456    restart: always  mysql_3:    image: mysql:5.7    ports:      - "3308:3306"    volumes:      - "/root/mysql_server/node3/data:/var/lib/mysql"      - "/root/mysql_server/node3/conf.d:/etc/mysql/conf.d"    environment:      - MYSQL_ROOT_PASSWORD=123456    restart: always

启动服务

sudo docker-compose up

查看端口状态

netstat -lntp

2. 配置MySQL主从复制

安装必要工具

由于Docker容器中没有安装vim,我们需要先安装vim工具:

docker exec -it mysql_server_mysql_1 apt-get update && sudo apt-get install vim

配置主从服务器

修改MySQL配置文件

进入各个节点并修改配置文件:

docker exec -it mysql_server_mysql_1 vim /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld.cnf中添加以下内容:

[mysqld]server-id=100log-bin=mysql-bin

同样地,对mysql_2mysql_3节点进行相同配置:

docker exec -it mysql_server_mysql_2 vim /etc/mysql/mysql.conf.d/mysqld.cnf
docker exec -it mysql_server_mysql_3 vim /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld.cnf中添加:

[mysqld]server-id=101log-bin=mysql-slave-bin
[mysqld]server-id=102log-bin=mysql-slave-bin

启动并验证主库

进入主库节点(如mysql_1)并启动服务:

sudo docker exec -it mysql_server_mysql_1 systemctl start mysql

查看主库状态:

sudo docker exec -it mysql_server_mysql_1 show master status

获取主库IP地址

查看主库的Docker内网IP:

sudo docker inspect mysql_server_mysql_1

从库同步数据

进入从库节点(如mysql_2)并执行以下命令:

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

查看同步状态

检查从库的同步状态:

show slave status\G

处理同步问题

如果出现同步问题,可以执行以下命令:

stop slave;SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;start slave;

注意事项

  • 主库的数据新增、修改、删除会自动同步到从库。
  • 如果出现同步延迟,可以重启slave服务。

通过以上步骤,我们可以成功配置一个基于Docker的MySQL主从复制环境。

转载地址:http://dsqzz.baihongyu.com/

你可能感兴趣的文章
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
Nmap扫描教程之Nmap基础知识
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NMF(非负矩阵分解)
查看>>