zoukankan      html  css  js  c++  java
  • mysql replication

    一、前言

    Mysql Replication作为读写分离的廉价解决方案,支持一主多备的方式进行数据存储,采用二进制日志传送,目前存在着广泛应用,网上相关概念也比较多,不再重复介绍。引用一张官方提供的Replication应用场景图片(http://dev.mysql.com/doc/refman/5.1/en/replication-solutions.html)。本文主要记录了基于Linux环境下的Mysql Replication配置步骤。

    二、环境准备

      IP_PORT OS Mysql
    Master 10.129.221.14:3306 CentOS 6.5 5.1.73
    Slave 10.129.221.16:3306 CentOS 6.5 5.1.73
    Slave ...    

    三、在Master和Slave上分别开启root用户远程访问,并设置root用户密码,默认为空

    mysql> use mysql;
    mysql> update user set host = '%' where host ='127.0.0.1' and user = 'root';
    mysql> update user set password = PASSWORD('glf_123') where user = 'root';
    mysql> flush privileges;

    四、在Master数据库上创建一个repl用户并进行授权,用于slave机器访问master数据库

    mysql> create user 'repl'@'%' identified by 'glf_123';
    mysql> grant replication slave on *.* to 'repl'@'%' identified by 'glf_123';
    mysql> flush privileges;

    修改后的user表数据如下:

    五、在Master服务器上创建一个TestDB数据库,用于Replication

    六、修改Master数据库的数据库配置(/etc/my.cnf),开启数据库二进制日志记录

    复制代码
    [mysqld]
    server-id=1                # 唯一ID
    log-bin=mysql-bin          # 指定日志文件
    binlog-do-db=TestDB        # 需要同步的数据库
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    复制代码

    七、重启Master数据库

    [root@VM-CentOS /]# service mysqld restar

    八、检查Master库的Master状态

    mysql> SHOW MASTER STATUS;

    显示结果如下:

    九、修改Slave数据库配置(/etc/my.cnf)

    复制代码
    [mysqld]
    server-id=2     # 唯一ID
    read_only=1     # 设置Slave库只读
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql 
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    复制代码

    十、重启Slave数据库

    [root@VM-CentOS /]# service mysqld restart

    十一、设置slave节点replication指向master,在Slave库执行change master command

    复制代码
    change master to  
    master_host='10.129.221.14',
    master_user='repl',  
    master_password='glf_123',
    master_port=3306,  
    master_log_file='mysql-bin.000001',
    master_log_pos=0,  
    master_connect_retry=10;
    复制代码

    master_log_file表示Master数据库中的log文件名,通过SHOW MASTER STATUS查询;

    master_log_pos 表示需要同步的二进制偏移量 ,0表示全部重新同步;

    第八步中SHOW MASTER STATUS查询显示的是当前Position;

    十二、在Salve服务器启用slave模式

    mysql> start slave;

    十三、查看replication的执行情况、以及相关处理Process

    mysql> SHOW SLAVE STATUS G;
    mysql> show processlist G;

    十四、至此MySQL Replication 相关的配置完成,在Master库的任何修改都会通过事务日志提交到Slave。

    转自http://www.cnblogs.com/lengfo/p/4212910.html#3104117

  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4425582.html
Copyright © 2011-2022 走看看