• 1.Mysql集群------Docker下的Mysql主从复制


    前言:

    实话说,我想做的是Mysql集群架构。

    我的计划是:

    1.实现Docker下的Mysql主从复制

    2.实现MyCat基于Mysql的读写分离

    3.实现MyCat的分库分表

    4.实现pxc集群

    5.综合MyCat和pxc实现高可用、高并发的数据库集群架构

    当然,现在的我还是一个小菜鸟,尤其是第一次上手docker上配置Mysql的主从复制,

    自己一路跳坑,终于走出了黑暗。

    这里,我就带领大家进入我的坑计划。

    开始搬砖:

    1.安装docker

    (1)登录linux

    (2)下载docker

    命令:yum install docker

    就这么简单

    2.安装mysql镜像

    (1)开启docker

     命令:service docker start

    (2)拉取Mysql,注意Mysql5以后的版本才支持主从复制

    我这里是去网易蜂巢取得镜像:https://c.163yun.com/hub#/m/home/

    命令:docker pull hub.c.163.com/library/mysql:latest

    拉取完之后查询镜像

    命令:docker images

    3.配置主从复制

    (1)创建配置文件

    目录:/usr/local/mysql/   注意:目录你个人设定,这不过是我自己的爱好

    主数据库(master)配置文件/usr/local/mysql/master/my.cnf:

    [mysqld]

    log-bin=mysql-bin

    server-id=1     #注意这个id>0且要唯一

    从数据库(slave)配置文件/usr/local/mysql/slave/my.cnf:

    [mysqld]

    log-bin=mysql-bin

    server-id=2     #注意这个id>0且要唯一

    注意:我是在容器外部进行的配置,喜欢进入容器内部配置的请稍等。

    (2)开启主从数据库

    开启主数据库:

    开启从数据库:

    查看容器状态:

    在这里,容器就正常打开了。

    喜欢进入容器内部修改配置文件的注意了:

    进入主数据库命令:docker exec -it mysql /bin/bash

    修改my.cnf配置文件命令:vi /etc/mysql/my.cnf

    oh my 上帝!里面的vi、vim命令都不能用!!!

    上天难不倒有心之人,我装一个vim(实话说,vi是怎么装怎么失败,vim偶尔成功,但老子用的是集群啊,对,每一个容器都得装一遍vim,so,我启用外部的配置文件)

    命令:apt-get update

    命令:apt-get install vim

    (这一次神奇的装成功了)

    照着上边修改配置文件修改下my.cnf就可以了。

    命令:vim /etc/mysql/my.cnf

    配置成功的同学,保存,重启容器,照此再配置从服务器。

    (3)重中之重的主从配置环节

    ---------------------------------------------------------------------------------------------------------------------------------master数据库配置-----------------------------------------------------------------------------------------------------------------------

    master数据库创建授权用户:

    grant all privileges on *.* to 'username'@'ip' identified by 'password' with grant option;

    flush privileges;

    %是统配字符,表示所有ip都可以连接,这个ip主要是从数据库的ip

    喜欢进入容器内部进行黑窗操作的同学请不要介意,我是喜欢这样用客户端哈哈。

    查询用户,host:select user,host from mysql.user;

    查看master状态:show master status;

    主数据库的配置环节到此就完成了。

    ---------------------------------------------------------------------------------------------------------------------------------slave数据库配置-----------------------------------------------------------------------------------------------------------------------

    停止slave:stop slave;

    配置连接master数据库:

    change master to master_host=’ip’, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;

    开启slave:start slave;

    查询slave状态:show slave status;

    当你的Slave_IO_State也是这样就完成了。

    但是可惜的是,如果你不知道这个细节,你永远是完不成的。

    注意:上面填写的ip,一定一定是docker容器的ip,而不是虚拟机的ip。

    来查看下,docker容器的ip:

  • 相关阅读:
    谈谈团队文化
    ubifs性能优化分析
    ubifs总体设计分析
    分层网络模型(二)
    哎,老了之display-box
    http协议
    box-shadow,text-shadow
    nth-child,nth-last-child,after,before,tab-highlight-color,first-child,last-child
    转载之html特殊字符的html,js,css写法汇总
    一天学习一点之express demo
  • 原文地址:https://www.cnblogs.com/TimerHotel/p/mysql_01.html
Copyright © 2020-2023  润新知