zoukankan      html  css  js  c++  java
  • mysql主从复制

    我的环境是利用了两个数据库实例,关于数据库实例我的前几篇文章写了。下面这个只是参考作用,需要懂其原理才能理解下面配置,要不然会出错,出错可以私聊我。

    1、打开主库bin-log
    log-bin = /data/3306/mysql-bin
    2、确保server-id不一样
    3、检查一下,grep是显示不出来的
    [root@weiwei 3306]# egrep "log-bin|server-id" /data/3306/my.cnf 
    [mysqld]
    log-bin = /data/3306/mysql-bin
    server-id = 1
    4、查看log-bin是否开启
    show variables like 'log_bin';
    
    5、建立用于从库复制的账号rep,在主库上授权
    
    grant replication slave on *.* to 'rep'@'10.0.0.%' identified by 'oldboy123';
    
    flush privileges;
    
    
    6、在主库上做备份,下面是给主库加个读锁,不让用户写数据了,,,这个也可以不锁,这个是官方给出的方案,也可以在mysqldump的时候加上-x自动锁
    flush tables with read lock;   mysql5.1
    flush table with read lock;    mysql5.5
     
    7、另开一个窗口,做备份,另外在备份之前查看一下文件和位置
    mysql>show master status;        从此时的点开始备份,要记住,如果此时没有看这个,那么就在备份的时候加上master-data=1或者2,区别就是将来在change master to时要不要写文件和位置点,这个可以看上面的图
    mysql>show master logs;
    
    mysqldump -uroot -p123 -S /data/3306/mysql.sock -A -B --events|gzip  >/opt/rep.sql.gz    此处-A是所有数据,,-B是包含创库语句
    
    
    8、解锁
    unlock tables;
    
    9、将主库备份出来的数据传至从库,然后导入从库
    mysql -uroot -p123 -S /data/3307/mysql.sock </opt/rep.sql
    
    10、登录从库,写入配置
    CHANGE MASTER TO
    MASTER_HOST='10.0.0.7',
    MASTER_POST=3306,
    MASTER_USER='rep',
    MASTER_PASSWORD='123',
    MASTER_LOG_FILE='mysql-bin.000003',
    MASTER_LOG_POS=333;
    
    
    在从库的/data/3307的目录下会存再master.info,保存着登录主库的相关信息
    
    11、在从库中开启同步
    start slave;
    
    查看两个线程是否工作
    show slave statusG
    

      

    上述第六点锁表的命令的时间,在不同的引擎的情况下,会受下面参数的控制,锁表时,如果超过设置时间不操作会自动解锁,所以此参数要尽量设置大点

    interactive_timeout =60

    wait_timeout=60

    set gloable wait_timeout=28800……

    退出数据库后重进,就发现改了。

    可以查看超时时间  show variables like '%timeout%'

    mysql主从复制原理要点
    1、异步方式同步
    2、逻辑同步模式,多种模式,默认是通过sql语句执行
    3、主库通过记录binlog实现对从库的同步。binlog记录数据库的更新语句
    4、主库1个io线程,从库由1个io线程和一个sql线程来完成的
    5、从库关键文件master.info,relay-log,relay-info功能
    6、如果从库还想级联从库,需要打开log-bin和 log-slave-updates 参数
    
    生产环境快速配置mysql主从复制方案
    1、安装好要配置从库的数据库,配置好log-bin和server-id参数。
    2、无需配置主库的my.cnf文件,主库的log-bin和server-id参数默认就是配置好的。
    3、登录主库增加用于从库连接主库同步的账户例如:rep,并授权replication slave同步的权限。
    4、使用半夜mysqldump带--master-data=1备份的全备数据恢复到从库。
    5、在从库执行change master to……语句,无需binlog文件及对应位置点。
    6、从库开启同步开关,start slave。
    7、从库show slave statusG,检查同步状态,并在主库进行更新测试。
    

      

  • 相关阅读:
    mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构
    mysqldump 备份某张表 Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions,
    nfs missing codepage or helper program, or other error
    date 增加一个小时 减少一个小时
    mysqldump 备份单个数据库
    mysql删除账户
    怎么删除某个用户的所有帖子?
    mongodb删除重复数据
    ReSharper2018破解详细方法
    激活windows和office
  • 原文地址:https://www.cnblogs.com/bill2014/p/7231672.html
Copyright © 2011-2022 走看看