基于mysql5.6版本的主从库同步

系统:centos6.4

mysql版本:5.6.17

主库:192.168.31.111 从库:192.168.31.235

主库操作:

1、配置my.cnf文件开启二进制日志

log_bin = on

server_id = 1

2、建立用于同步数据库的账号rep

grant replication slave on *.* to ‘rep‘@‘192.168.31.%‘ identified by ‘redhat‘;

select user,host,password from mysql.user;

3、将主库进行锁表只读,完全备份主库

mysql>flush tables with read lock;

mysql -uroot -p -e "show master status;" > /backup/mysql_bak.log:记录二进制日志文件的位置

接下来就是完全备份数据库:

mysqldump -uroot -p -A -B |gzip > /backup/mysql_bak.`date +%F`.sql.gz

然后接触表的锁定

mysql>unlock tables;

######################################################################################

从库操作:

1、将备份的主库数据用scp传到从库的/tmp目录下

scp /backup/mysql_bak.`date +%F`.sql.gz 192.168.31.235:/tmp/

2、设置从库的server_id

server_id = 2

3、解压数据并将数据进行还原到从库上

gzip -d mysql_bak.`date +%F`.sql.gz

mysql < mysql_bak.`date +%F`.sql

4、然后执行master语句

mysql>mysql>CHANGE MASTER TO MASTER_HOST=‘192.168.31.111‘,MASTER_USER=‘rep‘,MASTER_PASSWORD=‘redhat‘,MASTER_LOG_FILE=‘on.000004‘,MASTER_LOG_POS=120;

mysql>start slave;

mysql>show slave status\G

当从库的状态信息中出现了以下两个yes:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

那么主从同步也基本成功了,附上成功截图:

另:附上前几次次的失败的日志

2016-04-17 10:38:40 33785 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the ‘START SLAVE Syntax‘ in the MySQL Manual for more information.

2016-04-17 10:38:40 33785 [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0

2016-04-17 10:38:40 33785 [Note] Slave SQL thread initialized, starting replication in log ‘on.000004‘ at position 382, relay log ‘./nginx-relay-bin.000001‘ position: 4

2016-04-17 10:38:40 33785 [Note] Slave I/O thread: connected to master ‘[email protected]:3306‘,replication started in log ‘on.000004‘ at position 382

2016-04-17 10:38:40 33785 [ERROR] Error reading packet from server: Misconfigured master - server_id was not set ( server_errno=1236)

2016-04-17 10:38:40 33785 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: ‘Misconfigured master - server_id was not set‘, Error_code: 1236

2016-04-17 10:38:40 33785 [Note] Slave I/O thread exiting, read up to log ‘on.000004‘, position 382

由上面日志错误信息知道Misconfigured master - server_id was not set,server_id没有设置,于是检查主从库的server_id

于是进行第二次尝试结果还是报错:

2016-04-17 11:00:03 33785 [ERROR] Error reading packet from server: log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event ‘on.000004‘ at 330, the last event read from ‘./on.000004‘ at 330, the last byte read from ‘./on.000004‘ at 349. ( server_errno=1236)

2016-04-17 11:00:03 33785 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: ‘log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event ‘on.000004‘ at 330, the last event read from ‘./on.000004‘ at 330, the last byte read from ‘./on.000004‘ at 349.‘, Error_code: 1236

2016-04-17 11:00:03 33785 [Note] Slave I/O thread exiting, read up to log ‘on.000004‘, position 330

由日志信息了解到二进制日志的position位置不对导致,于是在主库上重新来一次

show master status;得到正确的position

然后再次启动start slave;

接下来就成功了

注意:当尝试不成功时,一定要查看错误日志信息,error的地方

时间: 2024-11-29 11:06:45

基于mysql5.6版本的主从库同步的相关文章

mysql 主从库同步

#主库修改my.ini [mysqld] server-id=2 log-bin=mysql-bin binlog-do-db=demo #从库修改my.ini [mysqld] server-id=3 replicate-do-db=demo --配置完成后重启主从库 #主库为从库添加用户 grant replication slave,reload,super on *.* to slave@14.23.88.110 identified by '123456'; show master s

mysql主从复制实现(基于mysql5.5版本)

一,mysql主从复制原理介绍: mysql的复制是基于二进制日志实现的,二进制日志记录的是一切可能引起数据库发生改变的操作,因此,二进制日志对mysql十分重要,利用它可以实现数据库的即时点还原,对于备份恢复数据库意义重大. mysql复制中,主服务器的事务操作提交后,会将事件记录到二进制日中去,这时从服务器会启动IO_Thread来与主服务器通信,将主服务器中的二进制日志中的事件复制到本地并保存在本地的中继日志中,而后,从服务器会通过SQL_Thread将中继日志中的事件提取出来在数据库中进

mysql6.5主从库同步

mysql主从同步1.192.168.56.20(主)和192.168.56.21(从)安装MYSQL6.5数据库wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpmrpm -ivh mysql-community-release-el6-5.noarch.rpmyum repolist all | grep mysqlyum install mysql-community-server -y2.启动service

mysql主从库配置ps:mysql5.6

1 Mysql cluster版本主从服务器搭建实践 主从的作用:MySQL的主从服务器可以满足同步数据库,同步表,同步表内容,也可以指定仅同步某个数据库或某个表,还可以排除不同步某个数据库某个表. 同步原理:主从数据库同步主要是通过二进制日志来实现同步的. 从mysql官网下载最新版本:dev.mysql.com 本文环境: 主mysql服务器:10.1.68.110 安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz 从mysq

CentOS下zabbix监控mysql5.6版本主从

上次Zabbix添加了监控MySQL性能,因此此次在其基础上添加主从监控.文章过程中不在介绍MySQL5.6版本相关细节处理,具体可以参考上次文章: http://blog.csdn.net/ygqygq2/article/details/53264955 1. Zabbix添加自定义监控流程 Zabbix agentd添加自定义key: 自定义key调用的是获取监控数据源脚本等: 添加Zabbix主机数据源模板,主机链接模板; 2. 具体步骤 1. 编写监控mysql主从脚本 vim /usr

mysql5.7 主从不同步GTID_NEXT

5.6的解决方案 http://suifu.blog.51cto.com/9167728/1845457 end_log_pos 有了它,根据pos值,直接就能找到,找到delete那条数据,反做(变成insert) 原因 我在从库上操作了create语句,然后主从不同步了,所以解决办法就是跳过已经执行的sql Last_SQL_Errno: 1050 Last_SQL_Error: Coordinator stopped because there were error(s) in the w

centos7下mysql5.6.30配置单机多实例主从半同步复制

1.在master主服务器上执行: mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; Query OK, 0 rows affected (0.30 sec) mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1; Query OK, 0 rows affected (0.02 sec) mysql> SET GLOBAL rpl_semi_syn

利用mycat实现基于mysql5.5主从复制的读写分离

整体步骤: 1.准备好两台服务器,一台作为主数据库服务器,一台作为从服务器,并安装好mysql数据库,此处略 2.配置好主从同步 3.下载JDK配置mycat依赖的JAVA环境,mycat采用java语言开发运行依赖jre 4.配置mycat的相关文件 5.测试 一.配置mysql主从环境 MYSQL主从同步的作用 (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availability)和容错 MYSQL主从同步的原理 关于MYSQ

主从库延迟对项目质量的影响

最近在测试一个新的项目,原来项目是不存在主从库,和服务器集群的内容. 但新的项目进行了架构升级,随着业务的增长,这种普遍的服务器集群,读写分离等基本的架构内容一定是需要使用的. 出现的问题: A系统在购买某个产品的时候,先从产品的剩余数量中减去购买量,发送一个mq消息,前面的几个事儿作为一个事务进行提交. B系统监听到mq消息后,对用户的金额进行扣减,扣减成功,发送mq消息,一个整体的事务 A监听到B的mq后,查询购买产品的内容,并对数量进行真实的扣减. 问题处在,A系统查询产品的内容是从从库进