首页 > 数据库 >随笔(二十三)『docker MySql 主从复制』

随笔(二十三)『docker MySql 主从复制』

时间:2023-07-14 10:11:29浏览次数:50  
标签:主从复制 slave log mydata MySql character master mysql docker

1、准备好带docker的虚拟机

2、拉取mysql5.7镜像

docker pull mysql:5.7

3、创建主服务的映射

mkdir -p /mydata/mysql_master/log
mkdir -p /mydata/mysql_master/data
mkdir -p /mydata/mysql_master/conf
touch /mydata/mysql_master/conf/my.cnf

4、创建从服务的映射

mkdir -p /mydata/mysql_slave/log
mkdir -p /mydata/mysql_slave/data
mkdir -p /mydata/mysql_slave/conf
touch /mydata/mysql_slave/conf/my.cnf

5、设置主服务mysql_master配置

cd /mydata/mysql_master/conf
vim my.cnf
[client]
default_character_set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
skip-character-set-client-handshake
skip-name-resolve

server_id=10010
binlog-ignore-db=mysql
log-bin=mysql_master-bin
expire_logs_days=3

6、设置从服务mysql_slave配置

cd /mydata/mysql_slave/conf
vim my.cnf
[client]
default_character_set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
skip-character-set-client-handshake
skip-name-resolve

server_id=10086
binlog-ignore-db=mysql
log-bin=mysql_slave-bin
expire_logs_days=3
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1

7、创建主服务mysql_master实例并启动

docker run -p 10010:3306 --name mysql_master \
-v /mydata/mysql_master/log:/var/log/mysql \
-v /mydata/mysql_master/data:/var/lib/mysql \
-v /mydata/mysql_master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

8、进入主服务容器,登录msql

docker exec -it mysql_master /bin/bash

mysql -u root -p

密码:root

9、创建从服务mysql_slave用户并设置密码

CREATE USER 'mysql_slave'@'%' IDENTIFIED BY '123456';

10、给从服务mysql_slave赋权及刷新权限

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'mysql_slave'@'%';

FLUSH PRIVILEGES;

11、查看主服务mysql_master状态

show master status;

image

12、创建主服务mysql_slave实例并启动

docker run -p 10086:3306 --name mysql_slave \
-v /mydata/mysql_slave/log:/var/log/mysql \
-v /mydata/mysql_slave/data:/var/lib/mysql \
-v /mydata/mysql_slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

13、进入从服务容器,登录msql

docker exec -it mysql_slave /bin/bash

mysql -u root -p

密码:root

14、在从服务mysql_slave配置主服务mysql_master信息

change master to master_host='172.17.0.1',master_port=10010,master_user='mysql_slave',master_password='123456',master_log_file='mysql_master-bin.000003',master_log_pos=781;

15、从服务mysql_slave查看主从状态

show slave status \G;

image

16、从服务mysql_slave开启主从同步

start slave;

17、再次从服务mysql_slave查看主从状态

show slave status \G;

image

标签:主从复制,slave,log,mydata,MySql,character,master,mysql,docker
From: https://www.cnblogs.com/xiaonuanxin/p/17551209.html

相关文章

  • windows Mysql 压缩包版本 安装
    Mysql现如今的版本都有安装版,但是我需要老的Mysql版本(5.7),恰好下载的是压缩版本,这里记录下过程安装Mysql压缩包版本,解压后得到一个文件夹,我是x64的,我放在了C:\ProgramFiles下然后将C:\ProgramFiles\mysql\bin放进系统环境变量,这样就可以在cmd窗口使用msql的命令了管理员......
  • Linux安装MySQL 5.7
    Linux安装MySQL5.71、上传到/usr/local,解压并重命名为mysqltar-zxvfmysql-5.7.26-linux-glibc2.12-x86_64.tar.gz​mvmysql-5.7.26-linux-glibc2.12-x86_64mysql2、创建mysql用户,并授予权限addusermysql​chownmysql:mysql-R/usr/local/mysql......
  • MySQL数据库迁移(直接复制文件)
    MySQL数据库迁移(直接复制文件)-简书(jianshu.com)看了几种方法:1、修改注册表的windows下迁移mysql数据-程序员丁先生-博客园(cnblogs.com)2、mysqldump指令将数据库表/数据保存成xx.sql文件存到本地的(157条消息)如何简单实现mysql数据库迁移_岁月呀的博客-CSDN博客......
  • mysql进阶
    mysql高级1.存储引擎1.mysql体系结构 2.存储引擎简介a.存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型3.存储引擎的特点a.InnoDB:是一种兼顾高可靠性能的通用......
  • 【技术积累】Mysql中的SQL语言【技术篇】【三】
    聚合函数SUM函数在MySQL中,SUM函数是用于计算数值列的总和的聚合函数。它接受一个数值列作为参数,并返回该列中所有值的总和。以下是一个使用SUM函数的示例:假设我们有一个名为"orders"的表,其中有两个字段:"product"和"amount",用于记录不同产品的订单金额。现在我们希望计算出所有......
  • MySQL字符集与字符序实战
    一、字符序命名规则字符序是以对应的字符集名称开头、以_ci(不区分大小写)、_cs(区分大小写)、_bin(按编码值比较,区分大小写)等结尾。字符序的作用就是每种不同的字符集在比较时采用的不同的方法,例如:当会话的collation_connction设置为utf8_general_ci字符序时,字符a和字符A是等价的,而当......
  • Docker学习路线4:Docker基础知识
    Docker是一个平台,简化了在轻量、可移植的容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍Docker的基础知识、其组件以及您需要开始使用的关键命令。容器是什么?容器是一个轻量级、独立的可执行软件包,包含运行应用程序所需的所有依赖项(库、二进制文件和配置文件)。容器......
  • mysql的字符串函数
    对于针对字符串位置的操作,第一个位置被标记为1。ASCII(str)返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。mysql>selectASCII('2');    ->50mysql>selectASCII(2);    ->50mysql>selectASCII('dx'); ......
  • linux环境用mysqldump定时备份Mysql数据
    每日备份mysql的数据,并保留一定数量的备份文件一、Mysql备份脚本backup.shvibackup.sh#!/bin/bash#保存备份个,备份31天的数据number=31#备份保存路径backup_dir=/home/mysql/data/mysqlbackup#日期dd=`data+%Y-%m-%d-%H-%M-%S`#备份工具tool=mysqldump#用户......
  • mysql数据库和数据表
    1、介绍在mysql中,使用数据库database对应一个项目,管理项目下的数据表。使用数据表table对应一个对象结构,管理属性和值。2、数据库命令(1)查看所有数据库showdatabses;(2)删除数据库dropdatabasedatabase_name;(3)创建数据库createdatabasedatabase_name;(4)选择数据库use......