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语句落地。
- 主从配置-在主上的操作(以下操作都是在虚拟机同一个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表。
-
几个配置参数
-
主服务器上
-
Binlog-do-db= (仅同步指定的库)
-
Binlog-ignire-db= (忽略指定库)
-
从服务器上
-
Replicate_do_db=
-
Replicate_ignore_db=
-
Replicate_do_table=
-
Replicate_ignore_table=
-
Replicate_wild_do_table= (如aming.% ,支持通配符%)
-
Replicate_wild_ignore_table=
-
几篇和mysql主从有关的文章 关键词 GTID
转载于:https://my.oschina.net/u/4095969/blog/3057549