一、 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. @Async注解详解 以及 可能遇到的各种问题

    一.简介1)在方法上使用该@Async注解,申明该方法是一个异步任务:2)在类上面使用该@Async注解,申明该类中的所有方法都是异步任务:3)方法上一旦标记了这个@Async注解,当其它线程调用这个 ...

  2. Web端上传数据到OSS

    阿里云文档:参考文献 更正第三点:用户带着从服务器获取的数据签名和文件上传到OSS,这样做可以保证安全性.减轻服务器负担. 1.操作步骤 ①新建Bucket ②创建后更改跨域设置 这一步是保证跨域请胯 ...

  3. c++枚举详细介绍以及具体用法

    C++ 中的枚举(Enumeration)是一种用于定义命名常量集合的数据类型.枚举可以提高代码的可读性和可维护性,让您可以使用有意义的名称来表示特定的取值,而不必使用原始的数字常量. 枚举的基本语法 ...

  4. 一些对dp突然的理解

    突然想到了一些理解,感觉有些模糊,怕忘记,就赶紧记下来就是对于状态的设计 用01背包举例子吧,我们设计状态的时候一定是要保证所有可能在最后优秀的子状态在前面的时候是能够保留下来的也就是我们的状态设计要 ...

  5. 使用go语言开发hive导出工具

    前言 新版 hive 提供了 beeline 工具,可以执行SQL并导出数据,不过操作还是有点复杂的,团队里有些同学不会Linux的基本操作,所以我花了亿点点时间写了个交互式的命令行工具方便使用. 效 ...

  6. BSD协议原文及中文翻译

    # BSD协议原文及翻译 参考链接 原文: The following is a BSD license template. To generate your own license, change ...

  7. 6.使用leetcode去练习语言

    目录 1 本章预览 2 简单题举例 2.1 题目描述 2.2 题目解析 2.3 题解 2.4 涉及基础语法 3 中等题举例 3.1 题目描述 3.2 题目解析 3.3 题解 3.4 涉及基础语法 4 ...

  8. 从零用VitePress搭建博客教程(5) - 如何自定义页面模板、给页面添加独有的className和使页面标题变成侧边目录?

    接上一节:从零用VitePress搭建博客教程(4) – 如何自定义首页布局和主题样式修改? 上一节其实我们也简单说了自定义页面模板,这一节更加详细一点说明,开始之前我们要知道在vitePress中, ...

  9. Maven 项目工程

    maven打包java --jar1.安装jdk2.安装maven   --安装非常简单 网上教程很多,此步骤忽略-- 3.配置jdk/maven环境变量 # java_jdk export JAVA ...

  10. [C++]线段树 区间修改 区间查询

    线段树 区间修改 区间查询 请先阅读上一篇Bolg 算法思想 这次要引入一个核心变量: lazy 懒标记 为了达到区间修改的目的 又为了减少运算量 所以就需要引入懒标记这个变量 用来满足 即用即推 没 ...