centos7 docker-composer mysql主从搭建【简单版本】

centos7 docker-composer mysql主从搭建(简单版本)

  • 确保您的CentOS 7系统满足以下要求: Docker和docker-compose已安装。
  • 网络设置允许Docker容器之间的通信。
  • 确保您的系统时钟是同步的,因为MySQL复制依赖于精确的时间戳。(联网就可以)

(步骤1)docker安装:

yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io

docker启动并设置开机自启:

systemctl start docker
systemctl enable docker

(步骤2)docker-compose安装:

下载Docker Compose二进制文件:使用以下命令下载Docker Compose的最新稳定版本

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

创建符号链接:为了方便使用,可以创建一个指向/usr/local/bin/docker-compose的符号链接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

验证安装:运行以下命令来验证Docker Compose是否成功安装

docker-compose --version

(步骤3)拉取MySQL官方镜像

docker pull mysql:latest

(步骤4)创建docker-compose.yml文件
随便在某个目录创建一个docker-compose.yml文件来定义MySQL主从服务,直接:

vim docker-compose.yml
#version: '3.8'

services:
  mysql-master:
    image: mysql:latest
    container_name: mysql_master
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
    volumes:
      - mysql-data:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password --log-bin=mysql-bin --server-id=1

  mysql-slave:
    image: mysql:latest
    container_name: mysql_slave
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
    volumes:
      - mysql-data:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password --log-bin=mysql-bin --server-id=2 --slave-mode
    depends_on:
      - mysql-master

volumes:
  mysql-data:

(步骤5)启动docker容器

docker compose up -d

启动成功后如图所示:
在这里插入图片描述

(步骤6)登录到MySQL主服务器: 使用MySQL root用户或之前创建的repl用户登录到主服务器

docker exec -it mysql_master mysql -u root -prootpassword

(步骤7)创建用于复制的用户(如果尚未创建): 如果之前没有创建复制用户,您需要在这里创建一个用户,并赋予它复制权限。

CREATE USER 'repl'@'%' IDENTIFIED BY 'replpassword';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

执行成功如图所示:
在这里插入图片描述

(步骤8)登录到MySQL从服务器: 同样,使用MySQL root用户或repl用户登录到从服务器。

docker exec -it mysql_slave mysql -u root -prootpassword

(步骤9)配置从服务器以连接主服务器: 在从服务器上,您需要改变主服务器配置,指定主服务器的地址、用户、密码以及二进制日志文件和位置。(在数据库里面运行命令)

CHANGE MASTER TO
  MASTER_HOST='mysql-master',
  MASTER_USER='repl',
  MASTER_PASSWORD='replpassword',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=107;

(步骤10)启动从服务器上的复制线程: 配置完成后,在从服务器上启动复制线程。(在数据库里面运行命令)

START SLAVE;

(步骤11)检查主从复制状态: 在主服务器和从服务器上检查复制状态,确保从服务器正在正确地复制主服务器上的数据。(在数据库里面运行命令)

SHOW SLAVE STATUS\G;

(步骤12)验证复制: 在主服务器上执行一些更改,然后检查从服务器上是否同步了这些更改。(在数据库里面运行命令)

USE mydatabase;
INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2');

然后在从服务器上检查这些更改是否已经同步。
完成以上步骤后,您的MySQL主从复制环境就应该搭建好了。请确保定期检查复制状态,并在必要时进行维护和优化。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值