mysql主从介绍及测试

说明:有很多同窗不能一次性把实验作成功,这是由于还不熟悉,建议至少作3遍

17.1 MySQL主从介绍

  1. MySQL主从又叫作Replication、AB复制。简单讲就是A和B两台机器作主从后,在A上写数据,另一台B也会跟着写数据,二者数据实时同步的
  2. MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
  3. 主从过程大体有3个步骤 1)主将更改操做记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里 3)从根据relaylog里面的sql语句按顺序执行
  4. 主上有一个logdump线程,用来和从的I/O线程传递binlog
  5. 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另一个SQL线程用来把relaylog里面的sql语句落地
  6. MySQL主从原理图

17.2 准备工做

  1. 下载二进制免编译包 5.6 64bit
  2. 安装mysql
  3. 配置mysql

17.3 配置主

  1. 安装mysql
  2. 修改my.cnf,增长server-id=130和log_bin=aminglinux1
  3. 修改完配置文件后,启动或者重启mysqld服务
  4. 把mysql库备份并恢复成aming库,做为测试数据
  5. mysqldump -uroot mysql > /tmp/mysql.sql
  6. mysql -uroot -e “create database aming”
  7. mysql -uroot aming < /tmp/mysql.sql
  8. 建立用做同步数据的用户
  9. grant replication slave on . to 'repl'@slave_ip identified by 'password';
  10. flush tables with read lock;
  11. show master status;

17.4 配置从

  1. 安装mysql
  2. 查看my.cnf,配置server-id=132,要求和主不同
  3. 修改完配置文件后,启动或者重启mysqld服务
  4. 把主上aming库同步到从上
  5. 能够先建立aming库,而后把主上的/tmp/mysql.sql拷贝到从上,而后导入aming库
  6. mysql -uroot
  7. stop slave;
  8. change master to master_host='', master_user='repl', master_password='', master_log_file='', master_log_pos=xx,
  9. start slave;
  10. 还要到主上执行 unlock tables

17.5 测试主从同步

  1. -uroot
  2. show slave stauts\G
  3. 看是否有
Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
 还需关注
 Seconds_Behind_Master: 0  //为主从延迟的时间
 Last_IO_Errno: 0
 Last_IO_Error:
 Last_SQL_Errno: 0
 Last_SQL_Error:
  1. 几个配置参数
1.主服务器上
 binlog-do-db=      //仅同步指定的库
 binlog-ignore-db= //忽略指定库
2.从服务器上
 replicate_do_db=
 replicate_ignore_db=
 replicate_do_table=
 replicate_ignore_table=
 replicate_wild_do_table=   //如aming.%, 支持通配符% 
 replicate_wild_ignore_table=
  1. 主上 mysql -uroot aming
  2. select count(*) from db;
  3. truncate table db;
  4. 到从上 mysql -uroot aming
  5. select count(*) from db;
  6. 主上继续drop table db;
  7. 从上查看db表

扩展

有的同窗,遇到主从不能正常同步,提示uuid相同的错误。这是由于克隆机器致使。
https://www.2cto.com/database/201412/364479.htmlhtml

相关文章
相关标签/搜索