• docker pull mysql:5.7

  • 创建目录/mydata/mysql/log /mydata/mysql/conf /mydata/mysql/data
  • docker run -itd --name mysql-back -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql  mysql:5.7
  • docker exec -it '容器ID' bash 进入容器

主数据库

#my.cnf配置编码和忽略大小写
character_set_server=utf8
init_connect='SET NAMES utf8'
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
lower_case_table_names=1

my.cnf添加

server-id=1 # 服务器唯一id 保证唯一,不能重复(一般为ip最后一段)
log-bin=mysql-bin # 启用二进制日志,MySOL的bin-log的名字
binlog-do-db=mydb # 指定需要同步的数据库

重启mysql

service mysqld restart

在MySQL主上创建用于备份账号

CREATE USER 'resp'@'%' IDENTIFIED BY 'repl123456';

GRANT REPLICATION SLAVE ON *.* TO 'resp'@'%';

MySQL主上,查看bin-log的文件名和位置并记录(resp_mysql.000001 |      605 )

SHOW MASTER STATUS;

编辑MySQL从数据库上的my.cnf

注:docker映射目录创建mysql默认没有配置文件,需要自己创建,目录 /mydata/mysql/conf。也可以先临时创建一个mysql容器,把配置文件cp出来,删除容器后再重新创建挂载。

vi /mydata/mysql/conf/my.cnf
character_set_server=utf8
init_connect='SET NAMES utf8'
lower_case_table_names=1
server-id=2

执行SQL
change master to master_host='ip',master_user='resp',master_password='repl123456',master_port=13306,master_log_file='resp_mysql.000001',master_log_pos=286944;

master host:MySQL主的地址
master_user:备份的用户名
master_password:备份的用户密码
master_log_file:bin-log的文件名
master_log_pos:bin-log的位置

MySOL从上开启同步(如果主数据库之前已有数据,先备份还原到从数据库)

START SLAVE;

查看状态

show slave status

主服务器防火墙端口需要开放从数据库的IP地址,从服务器无需开启。

#修改mysql密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; #给所有权限
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456"; 

docker安装mysql,开启主从的更多相关文章

  1. docker安装mysql主从

    docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...

  2. Docker安装mysql镜像并进行主从配置

    Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...

  3. 安装docker并使用docker安装mysql

    安装Docker 1. Docker 教程地址:https://www.runoob.com/docker/centos-docker.install.html 2.安装docker 命令:yum i ...

  4. Docker安装MySQL,Redis,阿里云镜像加速

    Docker安装 虚拟化容器技术.Docker基于镜像,可以秒级启动各种容器.每一种容器都是一个完整的环境,容器之间相互隔离. 如果之前安装的有其他版本,卸载旧的版本. $ sudo yum remo ...

  5. docker初识-docker安装、基于docker安装mysql及tomcat、基本命令

    一.docker是什么 用go语言开发,开源的应用容器引擎,容器性能开销极低 二.整体架构图 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 r ...

  6. 使用Docker安装Mysql

    最近使用阿里云服务器,学习一下Docker,今天学着使用Docker安装MySQL. 首先,从阿里云的Docker Hub 上pull一个MySQL的image. [centos@loovelj~]$ ...

  7. Docker学习实践 - Docker安装MySql数据库

    Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...

  8. 使用docker安装mysql和redis

    本文介绍在linux下使用docker安装mysql和redis. 原文地址:代码汇个人博客 http://www.codehui.net/info/59.html 测试环境:centos7.6,do ...

  9. 解决Docker安装MySQL不区分大小写问题

    Docker安装MySQL忽略大小写问题的问题连接MySQL: 查看当前mysql的大小写敏感配置 show global variables like '%lower_case%'; +------ ...

随机推荐

  1. python-逆序输出

    输入一行字符串,然后对其进行如下处理. 输入格式: 字符串中的元素以空格或者多个空格分隔. 输出格式: 逆序输出字符串中的所有元素.然后输出原列表.然后逆序输出原列表每个元素,中间以1个空格分隔.注意 ...

  2. python-图的字典表示

    图的字典表示.输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度.比如上图0点表示:{'O':{'A':2,'B':5,'C':4}}.用eval函数处理输入,eva ...

  3. javaweb之删除功能

    对数据库的删除,主要是通过表中的一个数据查询来进行逐个删除,否则会清空整张表. 一.dao层 在dao层加入删除方法 public boolean delete(Course n) { boolean ...

  4. 人机交互BS

    B/S结构用户界面设计       [实验编号] 10003809548j Web界面设计 [实验学时] 8学时 [实验环境] l  所需硬件环境为微机: l  所需软件环境为dreamweaver ...

  5. C2678 二进制“<”: 没有找到接受“const ***”类型的左操作数的运算符解决办法

    正确代码如下:#include<iostream> #include<string> #include<map> using namespace std; /*仿函 ...

  6. 基于Nginx实现反向代理

    一.nginx的简介 Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服 ...

  7. 自己写一个简单的LinkedList

    单链表 推荐阅读:https://www.cnblogs.com/zwtblog/tag/源码/ 哨兵节点: 哨兵节点在树和链表中被广泛用作伪头.伪尾等,通常不保存任何数据. 我们将使用伪头来简化我们 ...

  8. 【LeetCode】76. 最小覆盖子串

    76. 最小覆盖子串 知识点:字符串:滑动窗口 题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ...

  9. 用js实现倒计时效果

    首先获得两个时间的时间戳 var newdate = new Date('2021-01-22 21:25:00').getTime(); var olddate = new Date().getTi ...

  10. 约定编程与Sping AOP

    一.约定编程 Spring AOP是一种约定流程的编程,咱们可以先通过动态代理模式的实现来理解Spring AOP的概念. 代理的逻辑很简单,例如,当你需要采访一名儿童时,首先需要经过他父母的同意,在 ...