Docker 搭建MySQL主从环境

导读:本篇文章讲解 Docker 搭建MySQL主从环境,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

docker-compose.yml文件

version: '3.7'
 
services:

    mysql-master:
        container_name: mysql-master
        image: hub.c.163.com/library/mysql:5.7
        #主要是设置 lig-bin  
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=201 --log-bin=mysql-master-bin --relay_log=ep-mysql-relay-bin --read_only=1
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
        ports:
            - 3306:3306
 
    mysql-slave-1:
        container_name: mysql-slave-1
        image: hub.c.163.com/library/mysql:5.7
 
        # relay_log主要是用来 连级复制   , 需开启自身的binlog
        # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=202 --log-bin=mysql-slave-bin --relay_log=ep-mysql-relay-bin  --read_only=1
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=202 
 
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
 
        ports:
            - 3307:3306
        # network就不写了 docker 会创建一个 mysql_default的网络。

    mysql-slave-2:
        container_name: mysql-slave-2
        image: hub.c.163.com/library/mysql:5.7
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=203 
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
        ports:
            - 3308:3306

用到的sql :

#master.sql
#创建用户供从机(slave)来读取文件
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
#查看 master 状态 主要是看   file 和 posttion 供从机使用
show master status;
# change master to master_host='mysql-master', master_user='slave', master_password='123456', master_port=3306, 
#     master_log_file='mysql-master-bin.000003', master_log_pos= 2030, master_connect_retry=30;
# master_host='mysql-master' 这里用了docker的网络,也可以自己去找对应的ip
change master to master_host='mysql-master', master_port=3306,
    master_log_file='mysql-master-bin.000003', master_log_pos= 609, master_connect_retry=30;

# mysql 推荐 START SLAVE  时指定用户名密码,而不是写到上边的change master里
START SLAVE USER='slave' PASSWORD='123456'
# 相关命令: 停止 SLAVE 行为 
STOP SLAVE
# 相关命令: 停止 SLAVE 行为 
show slave status

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76468.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!