一、 Docker安装MySQL搭建主从

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run  -p 3306:3306  很多  -d  --name haha   mysql:5.7

Docker启动容器的数据部分一定挂载出来

1、创建Master

docker run -p 3307: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/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7
# 参数说明 /etc/my.cnf 任意的xxx.cnf 只要放在 /etc/mysql/conf.d 目录下,mysql也能认为是他的配置文件
# -p 3307:3306:将容器的3306端口映射到主机的3307端口
# -v /mydata/mysql/master/conf:/etc/mysql:将配置文件夹挂在到主机
# -v /mydata/mysql/master/log:/var/log/mysql:将日志文件夹挂载到主机
# -v /mydata/mysql/master/data:/var/lib/mysql/:将配置文件夹挂载到主机
# -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码 #修改master基本配置
vim /mydata/mysql/master/conf/my.cnf [client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#注意:skip-name-resolve一定要加,不然连接mysql会超级慢 #添加master主从复制部分配置
server_id=1
log-bin=mysql-bin
read-only=0 #主库是写库 #可以同步的库,master只需要记录哪些库的二进制日志
binlog-do-db=hello
binlog-do-db=world #不用同步的库
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

重启docker restart 容器ID|容器name

2、创建Slaver01

docker run -p 3308:3306 --name mysql-slaver-01 \
-v /mydata/mysql/slaver01/log:/var/log/mysql \
-v /mydata/mysql/slaver01/data:/var/lib/mysql \
-v /mydata/mysql/slaver01/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 #修改slave基本配置
vim /mydata/mysql/slaver01/conf/my.cnf [client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve #添加master主从复制slaver01部分配置
server_id=2
read-only=1
relay-log=mysql-relay replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

3、创建Slaver02

docker run -p 3309:3306 --name mysql-slaver-02 \
-v /mydata/mysql/slaver02/log:/var/log/mysql \
-v /mydata/mysql/slaver02/data:/var/lib/mysql \
-v /mydata/mysql/slaver02/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 #修改slave基本配置
vim /mydata/mysql/slaver02/conf/my.cnf [client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve #添加master主从复制slaver02部分配置
server_id=3
read-only=1
relay-log=mysql-relay replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

4、master授权slaver链接

1、进入master容器

docker exec -it mysql-master /bin/bash

2、进入mysql内部 (mysql –uroot -p)

  • 1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql)

    grant all privileges on . to 'root'@'%' identified by 'root' with grant option;

    flush privileges;

  • 2)、添加用来同步的用户

    GRANT REPLICATION SLAVE ON . TO 'slave'@'%' IDENTIFIED BY '123456';

3、查看master状态

show master status\G;

5、slaver01同步master数据

1、进入slaver容器

docker exec -it mysql-slaver-01 /bin/bash

2、进入mysql内部(mysql –uroot -p)

  • 1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql)

grant all privileges on . to 'root'@'%' identified by 'root' with grant option;

flush privileges;

  • 2)、设置主库连接

change master to master_host='192.168.119.159',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3307;

  • 3)、启动从库同步

start slave;

3、查看从库状态

show slave status\G;

6、slaver02同步master数据

1、进入slaver容器

docker exec -it mysql-slaver-02 /bin/bash

2、进入mysql内部(mysql –uroot -p)

  • 1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql)

grant all privileges on . to 'root'@'%' identified by 'root' with grant option;

flush privileges;

  • 2)、设置主库连接

change master to master_host='192.168.119.159',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3307;

  • 3)、启动从库同步

start slave;

3、查看从库状态

show slave status\G;

至此主从配置完成

MySQL搭建主从集群详细步骤~的更多相关文章

  1. 搭建mysql主从集群的步骤

    前提条件是:须要在linux上安装4个mysql数据库,都须要配置完对应的信息. 须要搭建: mysql 01: 主数据库  master                  mysql 02 :   ...

  2. Windows搭建Redis集群-详细教程

    一.集群知识 1.集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 2.使用redis集群的必要性 问题:我们已经部署好了redis,并且能启动 ...

  3. 转mysql复制主从集群搭建

    最近搭了个主从复制,中间出了点小问题,排查搞定,记录下来 1环境:虚拟机:OS:centos6.5Linux host2 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 ...

  4. 在linux上搭建nacos集群(步骤详细,linux小白也搞得定)

    (1)nacos官网:https://github.com/alibaba/nacos/releases/tag/1.2.1下载nacos安装包到window本地(后缀为tar.zip) (2)在li ...

  5. 基于Dokcer搭建Redis集群搭建(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  6. 基于Docker搭建Redis集群(主从集群)

    基于Docker搭建Redis集群(主从集群)   最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 <基于Docker的Redis集群搭建> 文章 ...

  7. 实验室中搭建Spark集群和PyCUDA开发环境

    1.安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统.选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心. ...

  8. 从0到1搭建spark集群---企业集群搭建

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...

  9. 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)

    前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊 ...

  10. Docker搭建MySQL主从集群,基于GTID

    写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...

随机推荐

  1. 【微信自动化】使用c#实现微信自动化

    引言 上个月,在一个群里摸鱼划水空度日,看到了一个老哥分享的一个微信自动化的一个类库,便下载了他的Demo,其本意就是模拟鼠标来操作UI,实现UI自动化:然后自己在瞎琢磨研究,写了一个简单的例子,用来 ...

  2. 《SQL与数据库基础》23. 读写分离

    目录 读写分离 一主一从 准备 配置 双主双从 准备 配置 主库配置 从库配置 从库关联主库 主库相互复制 双主双从读写分离 本文以 MySQL 为例.以 MyCat 数据库中间件为例,通过 MyCa ...

  3. iOS交叉编译

    编译objc程序 ~/toolchain4/pre/bin/arm-apple-darwin9-gcc -arch arm -lobjc -framework CoreFoundation -fram ...

  4. jQuery默认选中下拉框的某个值

    $("#quaterSelect").val("0");//id为quaterSelect的下拉框默认选中value是0的option选项

  5. Solution -「洛谷 P4007」小 Y 和恐怖的奴隶主

    Description Link. 这道题 的加强版. Solution 题解里面大多数都是概率 DP,或者是期望 DP 然后是逆推.甚至不给 DP 的转移式.机房 yyds Reanap 发了一篇逆 ...

  6. 使用Debian 11基础镜像制作java8镜像

    下面是dockerfile内容: FROM debian:bullseye # 切换apt源为清华源,并安装vim ping telnet命令 RUN apt-get update && ...

  7. 数据泵(impdb)导入Oracle分片的数据库dump文件

    数据泵(impdb)导入Oracle数据库 一.sqlplus登录目标数据库,创建导入的目录路径 #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建 create directory ...

  8. 蓝桥杯真题——第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组

  9. [CISCN 2019华东南]Web11

    看到下面connection 里面的内容有一点像抓包出来的 就抓包试试 似乎感觉也没有什么用 看到这个东西,那么就想到改IP 添加X-Forwarded-For:127.0.0.1 发现这个IP随着我 ...

  10. Kubernetes集群管理面板的安装及使用

    Kubernetes集群管理面板的安装及使用 1.前言 若海的腾讯云Lighthouse组建跨地域Kubernetes集群,让我成功体验到了Kubernetes集群诸多优点,但是非技术出生的我,长时间 ...