zoukankan      html  css  js  c++  java
  • mysql主从数据同步

    一,安装好主数据库和从数据库,此处省略

    我已经准备好了以下数据库

    主:

    centos 7

    mysql 5.7

    ip 192.168.1.2

    从:

    centos 7

    mysql 5.7

    ip 192.168.1.3

    二,主数据库配置(192.168.1.2)

    my.cnf ,添加以下配置

    #唯一标识,主库从库不能重复
    server_id = 1
    #开启日志
    log_bin = mysql-bin
    #日志记录格式
    binlog_format=MIXED
    #单个日志文件最大
    max_binlog_size = 512M
    #日志有效期
    expire_logs_days = 3
    #日志只记录哪些数据库,这里只同步zhong数据,如果多个数据库用逗号隔开
    binlog_do_db = zhong
    #日志忽略哪些数据库
    binlog_ignore_db = mysql,performance_schema,information_schema

    重启mysql

    service mysql restart

    创建一个同步的用户

     //允许ip192.168.1.3登录,只有同步数据的权限,密码123456
    CREATE USER 'slave'@'192.168.1.3' IDENTIFIED BY '123456';
    grant replication slave on *.* to 'slave'@'192.168.1.3' identified by '123456';
    flush privileges; 

    如果主库已有数据,从库还没(如果主从库数据一致性请忽略)

    在从库创建需要同步的库

    主库执行,刷新表然后锁表

    flush tables with read lock;

    导出数据后,导入到从库

    三,从库配置(192.168.1.3)

    my.cnf ,添加以下配置

    #唯一标识,不能和主库重复
    server_id = 2
    #开启日志
    log_bin = mysql-bin      
    #日志记录的格式  
    binlog_format=MIXED    
    #单个日志文件最大    
    max_binlog_size = 512M   
    #日志过期时间  
    expire_logs_days = 3
    #是在slave上配置,指定slave要复制哪个库
    replicate_do_db = zhong 
    #是在slave上配置,指定slave要忽略哪个库
    replicate-ignore-db=mysql,performance_schema,information_schema 
    #从库建议开启,有利于数据一致性
    relay_log_recovery = 1   
    #如果从库还会用做主库,建议开启  
    log_slave_updates = 1      

    重启mysql

    service mysql restart

    执行以下sql语句

    主库执行

    show master status;

    记下 Position 和 File 的值

    从库执行

    stop slave;
    
    -- master_log_file和master_log_pos是刚才查询主库记下的值
    change master to master_host='192.168.1.2',master_user='slave',master_password='123456',master_post=3306,master_log_file='mysql-bin.000004',master_log_pos=154;
    
    start slave;

    查看同步线程是否正常

    show slave status; 

    回到主库解锁表(如果主从库数据一致性请忽略)

    unlock tables;

    到处完成了,可以去主库添加数据测试下,从库是否正常同步

    四,从库和主库时间不一致,相差几个小时

     例如以上,从库同步后相差了12个小时

    时区问题

    修改主库和从库配置,my.cnf

    在 [mysqld] 下添加配置

    default-time-zone=timezone
    default-time-zone = '+8:00'

    重启mysql

    service mysql restart

    问题解决

     

    my.cnf ,添加以下配置

  • 相关阅读:
    DB2开发系列之三——SQL函数
    DB2开发系列之二——SQL过程
    DB2开发系列之一——基本语法
    优化的“真谛”
    DB2性能调优
    AIX分页(交换)空间的监控
    AIX5L内存监控和调整
    直接删除undo及temp表空间文件后的数据库恢复一例
    【LeetCode】 -- 68.Text Justification
    关于linux下的.a文件与 .so 文件
  • 原文地址:https://www.cnblogs.com/suruozhong/p/13199146.html
Copyright © 2011-2022 走看看