• 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

  • 相关阅读:
    POJ 3660 Cow Contest 任意两点之间的关系 Floyd
    CDOJ 1146 A
    TTTTTTTTTTTTTT CDOJ Sliding Window 线段树(nlogn)或双端队列(n) 模板
    CDOJ 203 并查集+优先队列 好题
    CDOJ 1073 线段树 单点更新+区间查询 水题
    CDOJ 1070 秋实大哥打游戏 带权并查集
    CDOJ 1063 堆排序模板
    CDOJ 1069 秋实大哥去打工 单调栈 下标处理
    CDOJ 1061 C
    巨蟒python全栈开发django14:Form组件
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4425582.html
Copyright © 2020-2023  润新知