20180628

6月28日任务
17.1 MySQL主从介绍
17.2 准备工作
17.3 配置主
17.4 配置从
17.5 测试主从同步
有的同学,遇到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致。
https://www.2cto.com/database/201412/364479.html

1. MySQL主从介绍

MySQL Replication: 可将数据从master服务器复制到一台或多台slave服务器. 用途: 故障切换, 备份, 读写分离
MySQL主从基于binlog,主上需开启binlog
原理:

  1. master将数据库的改变写入binlog
  2. slave同步这些binlog事件(sql语句)到本机并记录到relaylog
  3. slave根据relaylog中的sql语句按顺序执行

2. 配置主

安装mysql
编辑配置文件
vim /etc/my.cnf
增加
server-id=130
log_bin=aminglinux1

启动或者重启mysqld服务
/etc/init.d/mysqld restart

把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';
flush tables with read lock;
show master status;

3. 配置从

安装mysql
编辑配置文件
vim /etc/my.cnf
配置server-id=132,要求和主不一样
修改完配置文件后,启动或者重启mysqld服务
/etc/init.d/mysqld restart

把主上的aming库同步到从上
可以先创建aming库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入aming库

mysql -uroot
stop slave;
change master to master_host='', master_user='repl', master_password='', master_log_file='test1.000001', master_log_pos=27783;
start slave;

查看主从同步是否正常
从上执行 show slave status\G
看是否有
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:

还要到主上执行 unlock tables;

4. 测试主从同步

几个配置参数

主服务器上

binlog-do-db= 仅同步指定的库, 多个用逗号分隔
binlog-ignore-db= 忽略指定库

从服务器上

replicate_do_db=
replicate_ignore_db=
replicate_do_table=
replicate_ignore_table=

上面4个尽量避免用, 数据可能不完整.
如忽略了mysql, use mysql中含有联合查询select aming.table1也会被忽略
replicate_wild_do_table= 如aming.%, 支持通配符%
`replicate_wild_ignore_table=

测试

主上

mysql -uroot aming
select count(*) from db;
truncate table db;

从上

mysql -uroot aming
select count(*) from db;

主上继续drop table db;
从上查看db表

未经允许不得转载:外贸SOHO笔记 » 20180628

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者~

支付宝扫一扫打赏

微信扫一扫打赏