美文网首页
mysql主从复制环境搭建

mysql主从复制环境搭建

作者: 大大大浣熊 | 来源:发表于2019-05-28 17:13 被阅读0次

    因为业务需要要做mysql读写分离,最近抽空研究了下,发现读写分离是以mysql主从复制为基础进行的,今天就先记录下搭建一个主从环境的过程,本文只会记录搭建过程,不会有任何主从原理等理论知识。
    主库负责接受外部数据,系统在运行过程中的业务数据持久化是直接在主库中进行,不会涉及到从库(读写分离另论)。
    本文中主库使用的windows环境,从库使用Ubuntu下docker环境。

    过程

    1:修改主库和从库的配置文件
    2:重启服务
    3:主库分配从库复制用的账号
    4:从库使用主库分配的账号与主库进行连接
    5:检查结果

    修改配置文件

    windows系统中,如果找不到mysql配置文件位置可以通过mysql服务找到,具体操作如下:
    1:右键‘此电脑’,选择管理

    2:选择服务和应用程序,然后选择服务,在服务列表中找到mysql 服务列表.png
    3:右键MySQL,选择属性,红色标记就是配置文件地址,修改该文件就行 属性.png

    修改配置文件后在这个界面进行mysql服务的重启,先停止后启动。
    Linux系统中,查看mysql配置文件使用命令

    mysql --help | grep my.cnf
    

    找到配置文件后,编辑配置文件,在配置文件中添加

    #id集群内唯一且为整数
    server-id=1 
    #二进制变更日志名称
    log-bin=mysql-bin
    

    修改完成后保存并重启服务。重启完成后进入mysql命令行,输入

    show master status \G
    
    master.png

    到此主库搞定!
    从库为了方便我使用的是docker环境,配置和主库配置一样,在配置文件中配置添加一个server-id即可。
    docker环境搭建及使用这里就不详细说明了。直接说在docker中配置mysql从库步骤。
    1.先从镜像库中下载官方mysql镜像并开启容器。进入该容器,找到配置文件,/etc/mysql文件夹下的my.cnf

    docker run --name mysql -p 3306:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql
    

    2.将docker中的配置文件复制到宿主机中进行修改,使用如下命令将docker中文件复制到宿主机上

    docker cp mysql容器id:/etc/mysql/my.cnf /home/mysqlconf/
    

    3.修改上一步复制下来的my.cnf在其中添加

    #id集群内唯一且为整数
    server-id=1 
    #二进制变更日志名称,如果从库不需要向其他节点继续同步则该配置可以不用
    log-bin=mysql-bin
    

    4.将修改后的文件替换掉docker容器中的my.cnf,重启容器,并检查mysql服务是否启动成功。

    建立主库与从库的关系

    1.打开主库的命令行工具,给从库分配账号及权限。

     GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO mysql_backup@'%' IDENTIFIED BY '123456';
    

    2.打开从库mysql命令行工具

    CHANGE MASTER TO 
    MASTER_HOST='主库ip',
    MASTER_PORT=主库端口,
    MASTER_USER='mysql_backup',
    MASTER_PASSWORD='123456';
    

    3.在从库mysql命令行工具中输入

    START SLAVE;
    show slave status \G
    
    slave.png

    查看结果第一行是否是Waiting for master to send event,以及红色标记处是否都是yes。如果没有请检查配置。
    如果配置没有问题,请检查两个网络情况,如果网络情况没问题,在命令行输入

    stop slave ;
    set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    start slave ;
    

    再查看下状态,此时为止,mysql主从复制环境搭建完成。

    测试

    使用navicat连接主库和从库,在主库中新建数据库或者表或者在表中添加数据,在从库中就能立即看到主库中添加的内容

    相关文章

      网友评论

          本文标题:mysql主从复制环境搭建

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