MYSQL主从库不同步故障一例解决方法
于是:
1、在主库中创建一个临时库,将需要导入的表文件复制过来
2、执行
create database tmpdb;
create table tmptable;
cp mysql_date_file master_data_file //shell command 复制数据表文件到master data_dir下
insert into master.tmptable select * from tmpdb.tmptable;
执行完后,主库中数据导入正常
再看slave status
show slave status;
发现错误:not found tmpdb.tmptable (大致意思是这个,原来的错误信息没有记录下来)
匆忙中,看show master status 中Master_Log_Pos 标记为$Master_Log_Pos
然后在slave 上 CHANGE MASTER TO MASTER_LOG_POS=$Master_Log_Pos
然后再看show master status,发现有1162错误
到现在发现两边的数据不能同步了
。。。。。。
冥思苦想,不会重新做一遍主从库吧?
mysqlbinlog 我突然想到了它
于是mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable
找到了在slave上执行错误的SQL
mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable > /tmp/tmpbinlog
vi /tmp/tmpbinlog (find tmptable)
找到错误SQL的下一个# at (一串数字)标记为$NEXT_POS
在slave 上 CHANGE MASTER TO MASTER_LOG_POS=$NEXT_POS
show slave status 显示:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
哈哈,完成同步。
如果中间碰到1062错误 在slave配置文件中设定slave-skip-errors=1062,重启slave
相关推荐
-
mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结
下面写一下,这两个要是有no了,怎么恢复.. 如果是slave_io_running no了,那么就我个人看有三种情况,一个是网络有问题,连接不上,像有一次我用虚拟机搭建replication,使用了nat的网络结构,就是死都连不上,第二个是有可能my.cnf有问题,配置文件怎么写就不说了,网上太多了,最后一个是授权的问题,replication slave和file权限是必须的.如果不怕死就all咯.. 一旦io为no了先看err日志,看看爆什么错,很可能是网络,也有可能是包太大收不了,这个时
-
检测MySQL的表的故障的方法
表的故障检测和修正的一般过程如下: 检查出错的表.如果该表检查通过,则完成任务,否则必须修复出错的数据库表. 在开始修复之前对表文件进行拷贝,以保证数据的安全. 开始修复数据库表. 如果修复失败,从数据库的备份或更新日志中恢复数据. 在使用myisamchk或isamchk检查或修复表之前,应该首先注意: 建立数据库备份和使用更新日志,以防修复失败,丢失数据. 仔细阅读本章内容以后再进行操作,尤其是不应该在阅读"避免与MySQL服务器交互作用"之前进行操作.因为,在你没有足够的知识之前
-
线上MYSQL同步报错故障处理方法总结(必看篇)
前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了几种处理方法. 生产环境架构图 目前现网的架构,保存着两份数据,通过异步复制做的高可用集群,两台机器提供对外服务.在发生故障时,切换到slave上,并将其变成master,坏掉的机器反向同步新的master,在处理故障时,遇到最多的就是主从报错.下面是我收录下来的报错信息. 常见错误 最常见的3种情
-
Mysql常见问题集锦
1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a' 那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以. 2,MyISAM 和 InnoDB InnoDB和MyISAM是许多人
-
MYSQL主从库不同步故障一例解决方法
于是: 1.在主库中创建一个临时库,将需要导入的表文件复制过来 2.执行 create database tmpdb; create table tmptable; cp mysql_date_file master_data_file //shell command 复制数据表文件到master data_dir下 insert into master.tmptable select * from tmpdb.tmptable; 执行完后,主库中数据导入正常 再看slave status sh
-
mysql主从数据库不同步的2种解决方法
今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlo
-
mysql主从库不同步问题解决方法
遇到这样的错误如:"Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'"等或由于清数据导致主从库不同步了,解决办法如下: 先进入slave中执行:"slave stop;"来停止从库同步: 再去master中执行:"flu
-
解决MySQL主从数据库没有同步的两种方法
目录 解决MySQL主从数据库没有同步的两种方法 一.不同步情况 二.解决方案 1.先进入主库,进行锁表,防止数据写入 2.进行数据备份 3.查看master 状态 4.把mysql备份文件传到从库机器,进行数据恢复 5.停止从库的状态 6.然后到从库执行mysql命令,导入数据备份 7.设置从库同步 8.重新开启从同步 9.查看同步状态 10.回到主库并执行如下命令解除表锁定. 解决MySQL主从数据库没有同步的两种方法 工作的过程中发现Mysql的主从数据库没有同步 一.不同步情况 Mast
-
Mysql主从同步Last_IO_Errno:1236错误解决方法
Mysql主从同步的Last_IO_Errno:1236错误是什么原因呢,我们要如何来解决这个问题呢?下面和小编一起来看看关于此问题的记录与解决办法. <script>ec(2);</script> 从服务器错误代码: Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replicat
-
MySQL DDL 引发的同步延迟该如何解决
前言 写作案例分析,主要是工具介绍&推荐.MySQL 的同步机制比较单纯,主库上执行过的 DML 和 DDL 会在从库上再执行一次,那么主库上需要 10min 才能执行完的 DDL 理论上在从库至少也要花费 10min 才能执行完,这意味着从库的同步会延迟 10min 以上,等 DDL 执行完之后才会继续追同步. 解决方案 从 MySQL 的同步原理来看,主要是 DDL 这个单独的操作会花费太久的时间,导致从库也会被卡主.那么解决这个问题的办法就很容易想到:"拆解" DDL 的
-
MySQL存储Json字符串遇到的问题与解决方法
目录 环境依赖 问题描述 原因分析 解决方案 方案一 转义符替换 方案二 修改sql书写方式 方案三 DataFrame.to_sql() 补充:不同情况 总结 环境依赖 Python 2.7MySQL 5.7MySQL-python 1.2.5Pandas 0.18.1 在日常的数据处理中,免不了需要将一些序列化的结果存入到MySQL中.这里以插入JSON数据为例,讨论这种问题发生的原因和解决办法.现在的MySQL已经支持JSON数据格式了,在这里不做讨论:主要讨论如何保证存入到MySQL字段
-
MySQL无法创建外键的原因及解决方法
关联2张表时出现了无法创建外键的情况,从这个博客看到,问题出在第六点的Charset和Collate选项在表级和字段级上的一致性上.我的2张表的编码charset和collate不一致,2张表都执行执行SQL语句: alter table 表名 convert to character set utf8; 完美解决问题: ps:下面看下MySQL无法创建外键.查询外键的属性 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各
-
MySql中表单输入数据出现中文乱码的解决方法
MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式. MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2.建表的时候 CREATE TABLE content ( text VARCHAR(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
-
pip安装Python库时遇到的问题及解决方法
笔者电脑系统是win7,同时安装了Python2.7和Python3.6,但是在通过命令行直接使用"pip install XXX"安装Python库时出现了以下的错误信息: Fatal error in launcher: Unable to create process using '"' 解决方法: 1,找到你的Python版本对应的解释器的名称 首先你需要进入安装Python相应版本所在的文件夹.以我的Python版本为例,这是我的Python2.7版本对应的解释器名
随机推荐
- Angular 2父子组件数据传递之@Input和@Output详解(下)
- 如何做一个计数器并让人家申请使用?
- Oracle基本PLSQL的使用实例详解
- Java输入输出流的使用详细介绍
- Java泛型映射不同的值类型详解及实例代码
- ASP.NET中 ObjectDataSource控件的DataObjectTypeName属性
- 原生JS实现图片翻书效果
- JavaScript获取服务器端时间的方法
- 访问修饰符(C# 编程指南)
- Android实现ImageView图片双击放大及缩小
- JS对字符串编码的几种方式使用指南
- javascript操作Cookie(设置、读取、删除)方法详解
- python fabric使用笔记
- JavaScript保存并运算页面中数字类型变量的写法
- 使用C# 判断给定大数是否为质数的详解
- struts2 session 解读
- Rsync 服务器文件同步的搭建以及使用
- Array.prototype.concat不是通用方法反驳[译]
- SQL Server数据库中的存储过程介绍
- MySql查询不区分大小写解决方案(两种)