mysql高级:主从复制

来源:互联网 发布:微信pk10源码 编辑:程序博客网 时间:2024/05/20 22:27
mysql主从复制 replication


复制原理:


    1.master做更改数据操作(insert、update、delete)时,操作记录在binlog日志中。
    2.slave读取master的binlog日志文件,分析并生成relaylog并将操作复制到salve。


实现步骤:


    1.master服务器配置binlog
    2.slave服务器配置relaylog
    3.master授权slave账号,用来读取binlog权限
    4.slave服务器用账号连接master服务器


实现:


    1.编辑master服务器my.cnf文件 //同常在/etc/下


        设置如下值:
            # 服务器ID
            server-id=101
            # 声明2进制日志binlog的文件名 如下设置,生成后为mysql-bin.xxxx
            bin-log=mysql-bin


            # 二进制格式: mixd/row/statement
            #
            # row: 2进制记录磁盘变化
            # statement: 2进制录制执行语句,如update...
            # mixd: 以上两种混合
            #
            # 语句复杂而磁盘变化少,合适用row
            # 语句简单而影响数据多(上万行),合适用statement
            # 如没办法明确以上两种哪种更佳合适,用mix。 又系统根据语句来自动决定
            binlog-format=mixd


        查看日志文件:
            show master status
            # 记录下当前binlog文件名与指针位置,稍后设置slave服务器起始binlog文件时有用到


    2.编辑slave服务器my.cnf文件 //同常在/etc/下
        # slave服务器的二进制文件也建议打开,可以在特殊情况下回复数据用,也可以给slave的从服务器读取用。


        设置如下值:
            # 服务器ID
            server-id=201
            # 声明2进制relaylog日志的文件名 如下设置,生成后为relay-bin.xxxx
            relay-log=mysql-relay
            # 声明2进制binlog日志的文件名 如下设置,生成后为relay-bin.xxxx
            log-bin=mysql-bin
            binlog-format=mixd


    3.master服务器授权用户用来给slave读取binlog日志


        grant replication client,replication slave on *.* to binlog@192.168.1.% identified by 'binlog';
        flush privileges;


    4.slave服务器设置读取master服务器的用户


        change master to
        master_host='192.168.1.101'
        master_user='binlog'
        master_password='binlog'
        master_log_file='mysql-bin.000001' // 当前binlog文件名
        master_log_pos=348;  // 当前binlog指针位置


    5.重启master与slave服务器的mysql服务


        service mysqld restart


    6.查看slave服务器与master服务器连接状态是否正常
        master服务器mysql终端执行
        show slave status


        # 如没有连接成功,请检查iptable
        # 设置iptable后,先 rstop slave 关闭slave服务,之后再 start slave 启动slave服务
0 0
原创粉丝点击