Mysql主从

  • Mysql主从
  • Mysql主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步。
  • Mysql主从是基于binlog的,主上须开启binlog才能进行主从。
  • 主从过程大致分为3个步骤。
  • 1.主将更改操作记录到宾利里。
  • 2.从将主的binlog时间(sql语句)同步到从机上并记录在relaylog里。
  • 3.从根据relaylog里面的sql语句按顺序执行。
  • 主上有一个log dump线程,用来和从的I/O线程传递binlog。
  • 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地。 Mysql主从
  • 主从配置-在主上的操作(以下操作都是在虚拟机同一个IP段的操作)
  • 安装mysql。
  • 修改my.cnf,增加server-id=xxx(主上的IP,后三位即可)和log_bin=aminglinux1(命名随意)。
  • 修改完配置文件后,启动或者重启mysql服务。
  • 把mysql库备份并恢复aming库,作为测试数据。
  • mysqldump -uroot mysql > /tmp/mysql.sql
  • mysql -uroot -e “create database aming”
  • mysql -uroot aming < /tmp/mysql.sql
  • 创建用作同步数据用户。
  • grant replication slave on . to ‘repl’@slave_ip identified by ‘password’;(设定需要同步的IP,也就是从的IP)
  • flush tables with read lock;(将数据暂时锁定,目的是为了能让从先同步当前数据)
  • show master status;(记住当前库的File和Psoition)
  • chconfong mysql on(开机启动mysql)
  • 主从配置-在从上的操作
  • 安装mysql
  • 查看my.cnf,配置server-id=xxx(从的IP),要求和主不一样。
  • 修改忘配置文件后,启动或者重启mysqld服务。
  • 把主上aming库同步到从上。
  • 可以先创建aming库,让后把主上的/tmp/mysql.sql拷贝到从上,然后导入aming库。
  • mysql -uroot
  • stop slave;
  • change master to master_host=’(主的全IP)’,master_user=’repl’,master_password=’(密码)’,master_log_ file=’(主上库的File)’,master_log_pos=(主上库的Psoition);
  • start slave;
  • show slave status\G
  • 查看你的slave_IO_running和slave_sql_running是否为YES,如果有任意一个是NO,那么你的主从已经断开。
  • 还要到主上执行unlock tables(该命令用于恢复之前暂停的写入库的命令)。
  • 测试主从是否同步。
  • 主上mysql -uroot aming
  • select count(*) from db;
  • truncate table db;
  • 到从上mysql -uroot aming
  • select count(*) from db;
  • 主上继续drop table db;
  • 从上查看db表。

转载于:https://my.oschina.net/u/4095969/blog/3057549