美文网首页@Docker我爱编程
Mysql读写分离(docker版)

Mysql读写分离(docker版)

作者: 一路摇到顶 | 来源:发表于2017-09-19 10:16 被阅读74次

数据库不能承担起系统的高并发要求时,可以在用读写分离,实时的热备份,进行一主多从,从机承担大量的读取请求,而主机负责写入。
由主机产生二进制文件,从机进行读取并执行从而进行数据同步。
由于存在一定时间的延迟,那么这样还是适用于多读少写,或者对数据的实时性要求不是很高的网站。
数据架构可以是
一主多从,每个从机于主机直连。
一主多从,从机还能做为主机进行链式的链接,减少主机的日志读取压力,同时当主机宕机后,从机可以上来承担起主机的责任,只需要切换到新的主机。

采用docker进行启动多个mysql实例进行操作。

  1. 准备工作

    1. docker pull mysql
    2. 启动镜像
      docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql-test mysql
    3. 连接镜像 安装vim,并提交新tag
      docker exec -t -i mysql-test bin/sh
      apt-get update
      apt-get install vim
      exit;
      docker commit -m 'mysql install vim' mysql-test mysql:init
  2. 设置主机
    docker run -d --name mysql-master -v /root/mysql/master:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:init
    连接主机实例,进入/etc/mysql/conf.d,编辑docker.cnf
    在[mysqld]下面添加

     server-id=1   //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
     log-bin=master-bin
     log-bin-index=master-bin.index
    

    新建用户连接该机器mysql,创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

    create user repl;
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%'         IDENTIFIED BY 'mysql';
    

    查看 master 的日志
    SHOW MASTER STATUS;

  3. 设置从机
    启动镜像实例

    docker run -d --name mysql-slave -v /root/mysql/slave:/var/lib/mysql -p 3307:3306 -link mysql-master:master -e MYSQL_ROOT_PASSWORD=root mysql:init
    

    连接主机实例,进入/etc/mysql/conf.d,编辑docker.cnf,在【mysqld】下面添加

     server-id=2
     relay-log-index=slave-relay-bin.index
     relay-log=slave-relay-bin 
    

    重启mysql
    docker stop mysql-slave
    docker start mysql-slave
    连接从机mysql
    建立从机与主机的链接

    change master to master_host='master', //Master 服务器Ip
    master_port=3306,
    master_user='repl',
    master_password='mysql', 
    master_log_file='master-bin.000001',//Master服务器产生的日志
    master_log_pos=0;
    start slave;//开启从机
    
  4. 读写分离,配置完成。可以进行测试了。

相关文章

  • Mysql读写分离(docker版)

    数据库不能承担起系统的高并发要求时,可以在用读写分离,实时的热备份,进行一主多从,从机承担大量的读取请求,而主机负...

  • docker mycat mysql读写分离

    拉取mycat镜像 参考 基于docker的mysql主从,及其Mycat实现读写分离笔记 Docker安装Myc...

  • docker mysql 读写分离

    参考文档[https://www.cnblogs.com/jinjiangongzuoshi/p/9299567....

  • Mysql读写分离

    常见读写分离方式 MySQL-Proxy读写分离 Amoeba读写分离 Mycat读写分离 基于程序读写分离 My...

  • mysqlrouter的使用

    环境 在vm的docker中使用mysql router实现group replication 组复制的读写分离和...

  • mysql读写分离

    mysql读写分离 1、读写分离的介绍 MySQL读写分离基本原理是让master数据库处理写操作,slave数据...

  • docker搭建mysql读写分离

    写在前面 当mysql数据量不大且达到读写瓶颈的时候,读的性能消耗远大于写,我们可以将读和写分离开。本实例采用do...

  • Docker安装mysql读写分离

    mysql主从的机制主要是通过从服务器订阅主服务器的binlog日志实现。这里以一主双从的形式演示。 这三个mys...

  • docker部署mysql读写分离

    准备 docker下载镜像使用mysql8(都2021了还有那么多mysql5教程我也是醉了) 获得my.cnf文...

  • 20171211-15问题整理

    总摘要: 读写分离. mysql RR点击查看技术分享链接 2017-12-11摘要: 读写分离. mysql ...

网友评论

    本文标题:Mysql读写分离(docker版)

    本文链接:https://www.haomeiwen.com/subject/rltwsxtx.html