首页 > 数据库 >MyCat05——基于Docker搭建MySQL主从复制

MyCat05——基于Docker搭建MySQL主从复制

时间:2023-05-07 17:32:49浏览次数:45  
标签:bin 容器 主从复制 mysql master MySQL MyCat05 docker 节点

1 安装mysql的镜像

如果服务器较少,为了充分发挥现有服务器的利用率,可以使用容器化技术来安装mysql。

如果服务器没有docker,需要先安装docker

yum install -y docker

docker安装后,启动服务

service docker start

下载mysql 5.7 版本的docker镜像

docker pull mysql:5.7

MyCat05——基于Docker搭建MySQL主从复制_docker

2 启动mysql服务

启动主节点的mysql服务

--name 指定容器名

-p 指定端口,作为数据库3306 的映射端口

-e 设置环境变量,在这里为数据库root指定密码

-d 在后台运行容器

docker run --name master -p 3366:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

启动从节点的mysql服务

docker run --name slave -p 3377:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

通过命令 docker ps 可以查看到当前两个节点的 mysql 服务都已启动。

MyCat05——基于Docker搭建MySQL主从复制_vim_02

3 主从配置

3.1 修改主节点配置

进入到容器内部

docker exec -it master /bin/bash

进入容器后,因为要修改配置文件内容,而容器中默认没有 vim 编辑器,需要手动进行安装,在容器中可以直接执行

yum install -y vim

修改配置文件,有些地方的配置文件可能位置不同,猜测可能是因为容器的版本不同。

vim /etc/my.cnf

在[mysqld]下增加以下两项配置

log-bin=bin_log

server-id=1

MyCat05——基于Docker搭建MySQL主从复制_vim_03

修改完成并保存。 然后退出容器,并使用 docker 指令重启容器。

docker restart master

3.2 修改从节点配置

进入容器内部

docker exec -it slave /bin/bash

安装vim编辑器,与master部分相同,因为是来自同一个镜像包,所以默认也没有该编辑器。

yum install -y vim

修改配置文件

vim /etc/my.cnf

在[mysqld]下增加以下两项配置,这里的 server-id 和 master 必须不同。

log-bin=bin_log

server-id=2

修改完成并保存。 然后退出容器,并使用 docker 指令重启容器。

docker restart slave

4 创建主从复制

4.1 查看主节点IP地址

通过 docker inspect 指令查看 master 节点的IP地址

docker inspect master

MyCat05——基于Docker搭建MySQL主从复制_vim_04

4.2 主节点配置

进入到主节点mysql命令行,创建用于同步binlog文件的用户并分配权限 进入容器

docker exec -it master /bin/bash

进入mysql命令行

mysql -uroot -p123456

创建同步binlog的用户,并分配权限

grant replication slave on *.* to 'slave_user'@'%' identified by '123456';

查看主节点binlog信息

show master status;

MyCat05——基于Docker搭建MySQL主从复制_mysql_05

4.3 从节点配置

进入容器

docker exec -it slave /bin/bash

进入mysql

mysql -uroot -p123456

使用4.1得到的master节点IP地址,及4.2中得到的master节点binlog信息,在从节点中进行同步设置

change master to master_host='172.17.0.2',master_user='slave_user',master_password='123456',master_log_file='bin_log.000001',master_log_pos=443;

MyCat05——基于Docker搭建MySQL主从复制_mysql_06

启动主从复制

start slave;

查看从节点主从复制的状态

show slave status \G;

可以看到主从复制机制已经建立成功。

MyCat05——基于Docker搭建MySQL主从复制_mysql_07

5 验证主从复制

在主节点创建数据库、数据表,并插入一条记录

MyCat05——基于Docker搭建MySQL主从复制_vim_08

在从节点中查询该条记录

MyCat05——基于Docker搭建MySQL主从复制_mysql_09

标签:bin,容器,主从复制,mysql,master,MySQL,MyCat05,docker,节点
From: https://blog.51cto.com/u_113754/6252277

相关文章

  • mysql查看耗费时间
    开启性能分析showprofiles这个命令非常强大,能清晰的展示每条SQL的持续时间。通常结合showprofile 命令可以更加详细的展示其耗时信息。这样就能很容易的分析出,到底慢在哪个环节了。比较遗憾的是,在MySQL中,该命令默认是关闭状态的。在使用之前,我们首先得启用它:开启命令:setpr......
  • 学习笔记:MySQL常用的一些SQL语句
    本文谈谈MySQL的开发必会的sql语句创建数据库createdatabasedb1;删除数据库dropdatabasedb1;创建数据表createtabletb1用户表(idintnotnullauto_increment primarykey,namechar(10),                     department_idint,            ......
  • mysql执行顺序
    Mysql语法顺序,即当sql中存在下面的关键字时,它们要保持这样的顺序: select[distinct]fromjoin(如leftjoin)onwheregroupbyhavingunionorderbylimit  Mysql执行顺序,即在执行时sql按照下面的顺序进行执行: from......
  • [docker]mysql的docker镜像中docker-entrypoint-initdb.d目录的妙用
    docker-entrypoint-initdb.d是Docker官方MySQL镜像中的一个目录,用于初始化数据库。在该目录下,可以放置一些SQL脚本文件,MySQL会在容器启动时自动执行这些脚本文件,用于创建用户、创建数据库、创建表等操作。具体来说,当MySQL镜像启动时,其entrypoint.sh脚本会检查是否存在......
  • 在本机有MYSQL57的情况下安装MYSQL80
    下载MYSQL80https://dev.mysql.com/downloads/mysql/需要ORACLE账号配置环境变量加一个环境变量MYSQL_HOME80值为自己的放置解压的MYSQL80的根目录路径在PATH中配置环境变量%KEY%可以索引到刚才在外面配置的路径的内容,然后加上\bin,\bin中有可执行的批处理脚本将80的环境......
  • Linux deplay 安装 Ubuntu 及 MySQL
    设备支持:已root的mi-4(架构:armv71)软件支持:LinuxDeplay在Linuxdeplay上安装好你希望安装的Linux版本,我这里安装的是Ubuntu18.04(bionic),注意要根据手机的处理器型号选择适配的处理器版本,由于mi-4的处理器是armv71,发行版本选择armhfARMCortex-A系列(A53、A57、......
  • MySQL数据优化
    select*fromstudent;deletefromstudent;SELECTCOUNT(1)fromstudent;SELECT*FROM`student`LIMIT10000,10--0.674s--0.033s--0.031sSELECT*FROM`student`LIMIT10000,10;--0.031sSELECT*FROM`student`LIMIT10000,100;--0.032sSELECT*FROM......
  • mysql error 1064(42000)
    mysql表里面,使用同样的语法查询一张表,用的nopcommerce的表,里面的Order表,查询的时候出不来,总是提示1064(42000说语法有错误,思考不会有错,于是查询这个问题,也有想过这张表名有些特殊, 查询要加反单引号,select*from`Order`;就查询出来了,可能Order是一个关键......
  • MySQL调优 - 汇总
    汇总下平时开发中对mysql的调优过程。(一)mysqlserver的调优首先需要知道哪些配置可以调整,通过showvariables可以查看配置项。可以通过set方式更改配置项:方式一:(例子)set long_query_time=1;但仅对当前session生效,新连接更改无作用,如下方式二:(例子)setgloballong_query_t......
  • 数据库迁移之从oracle 到 MySQL
    关键字:数据库迁移之从oracle到MySQL开场白:对于水平扩展需求很强烈的大型网站,oracle到mysql的迁徙是必然的,一个重要的因素就是Oracle数据库是收费的,而MySQL则是完全免费的,mysql经过在大型网站的考验及沉淀目前已经修复的很完美了,下面就oracle到mysql......