首页 > 数据库 >1.Docker下搭建MySQL主从复制(一主一从)

1.Docker下搭建MySQL主从复制(一主一从)

时间:2022-08-29 23:14:30浏览次数:148  
标签:slave 主机 MySQL cnf 一主一 MASTER mysql docker Docker

Docker下搭建MySQL主从复制(一主一从)

实现Mycat读写分离

1、通过docker exec -it 627a2368c865 /bin/bash命令进入到Master容器内部

2、cd /etc/mysql切换到/etc/mysql目录下,然后vi my.cnf对my.cnf进行编辑

此时会报出bash: vi: command not found,需要我们在docker容器内部自行安装vim。

执行apt-get update,然后再次执行apt-get install vim即可成功安装vim

3、使用vim编辑my.cnf,在my.cnf下添加如下配置:

[mysqld]
server-id=1 #主服务器唯一ID
log-bin=mysql-bin #启用二进制日志
binlog-ignore-db=mysql # 设置不要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-do-db=testdb #设置需要复制的数据库
binlog_format=STATEMENT #设置logbin格式

4、同理,编辑slave从机的my.cnf文件,添加如下:

[mysqld]
server-id=2 #从服务器唯一ID
relay-log=mysql-relay #启用中继日志

5、注意,由于MySQL通过如下命令启动,所以可以直接在docker主机的/usr/local/docker/mysql/conf位置直接编写my.cnf文件同样生效,则不需要在容器内安装vim等;

docker run -p 3306:3306 --name mysql1  -v /usr/local/docker/mysql/conf1:/etc/mysql  -v /usr/local/docker/mysql/logs1:/var/log/mysql  -v /usr/local/docker/mysql/data1:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.6

6、重启主从 mysql的容器,

7、验证主机从机都关闭防火墙

8、在主机上建立帐户并授权 slave

#在主机MySQL里执行授权命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123123';
# 查询master的状态
show master status;

9、查询主机状态,找到如下File和Position的值;

10、在从机上配置需要复制的主机

#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
#启动从服务器复制功能
start slave;
#查看从服务器状态
show slave status;
注意:如果需要停用slave,命令为:stop slave;

11、查看从机状态,如果这个两个参数为Yes,则表示配置成功。

12、然后在主机新建库、新建表、insert 记录,从机复制测试。

13、主从复制排错:

14、如何重新配置主从

stop slave;
reset master;

标签:slave,主机,MySQL,cnf,一主一,MASTER,mysql,docker,Docker
From: https://www.cnblogs.com/NIAN2011/p/16637719.html

相关文章

  • 14.Docker搭建nginx
    Docker搭建nginx1、搜索并安装docker镜像2、先第一次直接启动,复制出docker容器内的html文件和conf文件,启动命令如下:dockerrun-d-p80:80--namenginx1nginx复制命......
  • 04第四章:Docker镜像
    一、Docker镜像是什么1、镜像是什么?镜像:是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(......
  • MySQL的sql_mode设置导致报错1292
    在MySQL8.0的一个PXC集群中,默认的sql_mode设置如下:select@@sql_mode;+-------------------------------------------------------------------------------------------......
  • MySQL低配数据库被大量数据导入时KO
    在一个低配MySQL数据库(笔记本电脑虚机环境,虚机配置2CPU/3G内存),在3000万级别的大量数据LOADDATA方式导入时,坚持一小时后,终于被KO了,甚至没写下任何有用的日志,只是在操作界面......
  • MySQL快速导入千万条数据(3)
    接上文,本次在较高性能的X86物理机上,做真实生产环境的大数据量导入测试。一、测试环境■CPU是24核,每核2线程,即48CPU$lscpuArchitecture:x86_64CPUop-mode......
  • MySQL快速导入千万条数据(2)
    接上文,继续测试3000万条记录快速导入数据库。一、导入前1000万条数据清库、建库、新建表结构、导入前1000万条数据,结果:■1000万行,有2索引导入耗时:16分钟QueryOK,999......
  • MySQL快速导入千万条数据(1)
    对于传统的关系数据库如oracle,在大量数据导入方面的效率,我们一般有一个大概的认知,即1分钟以内可以导入千万条数据,而对于MySQL数据库,普遍观点以为性能相对较差,尤其时对于千......
  • MySQL PXC集群大事务提交超限
    研发人员在测试大事务提交时遇见了错误:Goterror5-'Transactionsizeexceedsetthreshold'duringCOMMIT测试了几次都是1200S的时候停止的,不过在注释掉特定步骤后,......
  • Linux基础知识(13)- Docker (六) | 使用 Docker 安装常用应用程序
    本文演示使用Docker安装Ubuntu、CentOS、Nginx、Apache、Tomcat、Redis、MariaDB(MySQL)、Python、PHP和NodeJS。1.安装Ubuntu   Ubuntu是基于Debian的Li......
  • 基本的mysql语句
    基本的mysql语句  本节课先对mysql的基本语法初体验。操作文件夹(库)增createdatabasedb1charsetutf8;查#查看当前创建的数据库showcreatedatabase......