备库报错:

Last_SQL_Errno: 1594

Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.

遇到这个问题

处理方法就是重新修下下binlogpos值,从一个新的值重新备份,但有一个问题需要注意,这样的备库数据是最新的,但不是最全的,从pos之前的数据就没有了。

步骤如下:

1.关闭slave(备库操作)

(root@localhost:)[(none)]> stop slave;

Query OK, 0 rows affected (0.04 sec)

2.查看masterbinlogpos(在主服操作)

(root@localhost:)[(none)]> show master status ;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.045602 | 63365507 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

3.修改slaveposbinlog

(root@localhost:)[(none)]> change master to master_log_file='mysql-bin.045602 ',master_log_pos= 63365507;

Query OK, 0 rows affected, 33837 warnings (9.37 sec)

4.启动slave

(root@localhost:)[(none)]> start slave;

Query OK, 0 rows affected (0.04 sec)

5.查看状态(备库)

(root@localhost:)[(none)]> show slave status \G;

两个yes,而且没有error 证明成功


下面验证下备库是否为最新的

现在搭建好两个mysql数据库

版本为:/usr/local/mysql3307/bin/mysql  Ver 14.14 Distrib 5.7.31, for linux-glibc2.12 (x86_64) using  EditLine wrapper

暂时先不开启主从,在主库中添加一个表,并创建一些测试数据

主库:

mysql> use test;
Database changed mysql> show create table t1\G;;
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec) ERROR:
No query specified ERROR:
No query specified mysql> insert into t1(id,name) values(1,"zhang");
Query OK, 1 row affected (0.01 sec) mysql> insert into t1(id,name) values(2,"zhan");
Query OK, 1 row affected (0.01 sec) mysql> insert into t1(id,name) values(3,"zha");
Query OK, 1 row affected (0.01 sec) mysql> insert into t1(id,name) values(4,"1111");
Query OK, 1 row affected (0.01 sec) mysql> select * from t1;
+------+-------+
| id | name |
+------+-------+
| 1 | zhang |
| 2 | zhan |
| 3 | zha |
| 4 | 1111 |
+------+-------+
4 rows in set (0.01 sec)

从库配置好,并且是创建完表之后的数据

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| binarylog.000003 |  2645011 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec) 从库配置完my.cnf重启后
执行
mysql> change master to master_host='192.168.25.11',master_user='test',master_port=3306,master_password='test123',master_log_file='binarylog.000003',master_log_pos=2645011;
Query OK, 0 rows affected, 2 warnings (0.01 sec) 查看状态,确认没问题
mysql> show slave status\G; 然后在主库的t1表中,继续添加数据
mysql> insert into t1(id,name) values(5,"test5");
Query OK, 1 row affected (0.00 sec) 切换到从库中,查看是否自动备份
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.25.11
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binarylog.000003
Read_Master_Log_Pos: 2647526
Relay_Log_File: mysql-slave-relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: binarylog.000003
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1146
Last_Error: Error executing row event: 'Table 'test.t1' doesn't exist'
Skip_Counter: 0
Exec_Master_Log_Pos: 2647264
Relay_Log_Space: 795
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1146
Last_SQL_Error: Error executing row event: 'Table 'test.t1' doesn't exist'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: cd262711-c528-11ea-9399-000c29a68d4e
Master_Info_File: /data/3307/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 200713 20:07:58
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec) ERROR:
No query specified 提示数据库不存在,那就手动创建数据库test mysql> create database test;
Query OK, 1 row affected (0.01 sec) mysql> stop slave;
Query OK, 0 rows affected (0.01 sec) mysql> start slave;
Query OK, 0 rows affected (0.01 sec) 重启slave后,依然报错,再手动创建t1表
mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec) mysql> CREATE TABLE `t1` (
-> `id` int(11) DEFAULT NULL,
-> `name` varchar(10) DEFAULT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.03 sec) 再次重启slave mysql> stop slave;
Query OK, 0 rows affected (0.00 sec) mysql> start slave;
Query OK, 0 rows affected (0.01 sec) mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.25.11
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binarylog.000003
Read_Master_Log_Pos: 2647526
Relay_Log_File: mysql-slave-relay-bin.000004
Relay_Log_Pos: 320
Relay_Master_Log_File: binarylog.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 2647526
Relay_Log_Space: 699
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: cd262711-c528-11ea-9399-000c29a68d4e
Master_Info_File: /data/3307/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec) ERROR:
No query specified 一切正常,查看备库表数据
mysql> select * from t1;
+------+-------+
| id | name |
+------+-------+
| 5 | test5 |
+------+-------+
1 row in set (0.01 sec) 表中数据只有id=5的 在主库再次插入一条试试 mysql> insert into t1(id,name) values(6,"test6");
Query OK, 1 row affected (0.01 sec) 从库查看;
mysql> select * from t1;
+------+-------+
| id | name |
+------+-------+
| 5 | test5 |
| 6 | test6 |
+------+-------+
2 rows in set (0.00 sec)

汇总:

做主从复制的时候,一定要获取到之前的binlog和pos才可以,或者导入全库后再开始进行主从复制

【MySQL】Last_SQL_Errno: 1594Relay log read failure: Could not parse relay log event entry...问题总结处理的更多相关文章

  1. mysql主从同步失败 Relay log read failure: Could not parse relay log event entry

    mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQ ...

  2. MySQL复制报错(Slave failed to initialize relay log info structure from the repository)

    机器重启以后,主从出现了问题,具体报错信息: Slave failed to initialize relay log info structure from the repository 解决方案: ...

  3. Relay log read failure

    root@localhost > show slave status\G*************************** 1. row ************************** ...

  4. mysql relay log参数汇总

    前言:MySQL进行主主复制或主从复制的时候会在配置文件制定的目录下面产生相应的relay log,本文档总结这些相关参数的定义及解释. 1.什么是relay log The relay log, l ...

  5. ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

    salve复制线程停止,尝试start slave 时报ERROR 1872错误mysql> system perror 1872 MySQL error code 1872 (ER_SLAVE ...

  6. DM 源码阅读系列文章(六)relay log 的实现

    2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第六篇,在 上篇文章 中我们介绍了 binlog replication 处理单 ...

  7. mysql Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s)问题处理

    Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s). The most rece ...

  8. SSH项目过一段时间之后再访问会报一次Could not open Hibernate session for transaction 异常,Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlyi,再重新方法即可访问成功(通常出现在过了一晚之后再去访问系统)

    前端时间到客户那去进行项目的上线测试,将项目部署好之后,运行都是正常的,可是每到了第二天早上访问的时候,就会报一个Could not open Hibernate session for transa ...

  9. mysql报错1872: Slave failed to initialize relay log info structure from the repository

    ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository 在一台主机上增加 ...

随机推荐

  1. C++11新特性 变参模板、完美转发(简述)

    变参模板 (Variadic Template) - 使得 emplace 可以接受任意参数,这样就可以适用于任意对象的构建 完美转发 - 使得接收下来的参数 能够原样的传递给对象的构造函数,这带来另 ...

  2. Android 11 源码下载+编译教程

    下载AOSP源码 这里我使用的是外国语大学的镜像执行的下载,Mac系统的话,一定要在区分大小姐的磁盘下执行 repo init -u https://mirrors.bfsu.edu.cn/git/A ...

  3. Java 设计模式 —— 组合模式

    在现实生活中,存在很多"部分-整体"的关系,例如,大学中的部门与学院.总公司中的部门与分公司.学习用品中的书与书包.生活用品中的衣服与衣柜.以及厨房中的锅碗瓢盆等.在软件开发中也是 ...

  4. css样式规则

    在css样式规则中: 1.选择器用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式. 2.属性和属性值以"键值对"的形式出现. 3.属性是对指定的对象设置的样式 ...

  5. [日常摸鱼]luogu1613跑路

    新年A的第一道题2333 https://www.luogu.org/problemnew/show/P1613 题意:给一张有向图,每条边长为1,每个单位时间只能走$2^k$的长度,$k$可以任意选 ...

  6. JAVA基础--cmd命令

    常用cmd命令行,很简单 md(make directory):创建文件夹 如:md test1: rd(remove directory):删除空文件夹 如:rd test1:若文件夹包含其他文件, ...

  7. 第十章 Seata--分布式事务

    承接上篇 ,终于我们迎来了最后一章 第九章 Nacos Config–服务配置,第十章 Seata–分布式事务,感谢你能学习到这 !废话不多说,撸码 10.1 分布式事务基础 10.1.1 事务 事务 ...

  8. 很多人不知道的Python 炫技操作:海象运算符的三种用法

    Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上. 很多 Python 3.8 的特性还没来得及了解 ...

  9. Python-其他-round()保留小数位时遇到的问题

    最近有一个需求,原有整数计算,改成小数计算,保留一位小数. 于是按照需求,将数据结构由 int 改为 float ,计算时采用round()方法来保留小数位. 第一版代码如下: a = 0.10000 ...

  10. NET 5 依赖注入多个服务实现类

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来. 服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了 ...