mysql主从双机热备配置

其实双机热备的配置,在我看来,是有很多坑的,先不说坑的事,先看配置。
配置主从服务器
(ps:本人是在虚拟机环境配置,Linux版本6.5,mysql版本5.6)
主服务器Master:192.168.160.11
从服务器Slave   :192.168.160.12


1.主服务器配置
1.1为slave创建拥有同步权限的用户
登录master的mysql,创建用户:

mysql> grant replication slave on *.* to 'replicate'@'192.168.160.12' identified by '123456';
mysql> flush privileges;

在slave使用创建的replicate用户测试是否能够成功访问master:
[root@redis1clone ~]# mysql -h192.168.160.11 -ureplicate -p123456


1.2修改my.cnf配置文件
[root@redis1clone ~]# vi /etc/my.cnf
找到配置文件my.cnf打开后,在[mysqld]下修改即可:
[mysqld]
server-id = 1 			## 本机序号(注意确保主从mysql不一样)
log_bin=mysql-bin     		## 设置操作日志文件名称格式:${datadir}/mysql-bin.0000*
binlog_do_db = task		## 配置二进制日志文件记录的数据库
binlog_ignore_db = mysql	## 无需开启二进制日志文件的数据库,多个数据库则要重复设置
binlog_ignore_db = information_schema	## 无需开启二进制日志文件的数据库,多个数据库则要重复设置
binlog_format = mixed  		## 建议binlog_format配置为mixed


保存退出,重启mysql服务:
[root@redis1clone ~]# service mysqld restart




登录mysql查看二进制日志启动状态:
mysql > show master status;


2.从服务器配置
2.2修改my.cnf配置文件
[root@redis1 ~]# vi /etc/my.cnf
[mysqld]
server-id = 2 	//本机序号,区别于master
log_bin=mysql-bin     //设置操作日志文件名称格式:mysql-bin.0000*
replicate_do_db = task
replicate_ignore_db = mysql
replicate_ignore_db = information_schema

保存退出,重启mysql服务:
[root@redis1clone ~]# service mysqld restart




2.2用change master语句指定同步位置(关键)
mysql>stop slave;
mysql>change master to master_host='192.168.160.11',master_user='replicate',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=120;

注:host为master的IP,user,password为设置的同步权限用户及密码,master_log_file,master_log_pos分别对应在master上使用show master status显示的file和position。
mysql> start slave;
mysql> show slave  status\G  # \G可能在mysql可视化工具中不支持。



Slave_IO_RunningSlave_SQL_Running都显示 YES则表示成功。
Slave_IO_Running可能会因为网络延时,不能在第一次查询的时候显示为YES,只要Last_IO_Error: 没有信息,就多刷新几次看看。




填坑
1. Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'


这种情况,仔细检查change master语句中,log及pos项是否和show master status指令中的一致。


2.同步异常处理(两种方式,一种是手动去处理,一种是直接忽略异常)

从服务器在同步数据的时候,往往会因为一些不当操作导致同步异常而挂掉,这时候需要我们不断的不调优以及处理异常。


第一步,查看logbin日志,定位异常位置:
在master上运行如下命令,查看最新二进制日志文件:
mysql>SHOW BINLOG EVENTS in 'mysql-bin.000003';


mysql> stop slave;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 2;        #根据查看的信息选择跳过几个操作
mysql> start slave; 
mysql> show slave status\G


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值