**Describe the bug**
when I set  log_bin_use_v1_row_events =1 in MySQL side and start replicate data to ClickHouse，I will get the following execption：

0. DB::ReadBuffer::throwReadAfterEOF() @ 0x7d3f9ed in /usr/bin/clickhouse
1. ? @ 0xdb3d0a3 in /usr/bin/clickhouse
2. DB::MySQLReplication::MySQLFlavor::readPayloadImpl(DB::ReadBuffer&) @ 0xdb41983 in /usr/bin/clickhouse
3. DB::MySQLProtocol::IMySQLReadPacket::readPayload(DB::ReadBuffer&, unsigned char&) @ 0xdb29bb2 in /usr/bin/clickhouse
4. DB::MySQLProtocol::PacketEndpoint::tryReceivePacket(DB::MySQLProtocol::IMySQLReadPacket&, unsigned long) @ 0xdb2a6a3 in /usr/bin/clickhouse
5. DB::MaterializeMySQLSyncThread::synchronization(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xdb544b6 in /usr/bin/clickhouse
6. ? @ 0xdb72e2a in /usr/bin/clickhouse
7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x7d25aad in /usr/bin/clickhouse
8. ? @ 0x7d295d3 in /usr/bin/clickhouse
9. start_thread @ 0x7e65 in /usr/lib64/libpthread-2.17.so
10. __clone @ 0xfe88d in /usr/lib64/libc-2.17.so
 (version 20.12.4.5 (official build))
2021.01.12 17:52:48.630695 [ 13966 ] {abb6f32b-079a-493a-8bf3-30c970a46a22} <Error> executeQuery: Code: 32, e.displayText() = DB::Exception: Attempt to read after eof (version 20.12.4.5 (official build)) (from [::ffff:172.21.128.5]:37384) (in query: select count(*) from yuan;), Stack trace (when copying this message, always include the lines below):

0. DB::ReadBuffer::throwReadAfterEOF() @ 0x7d3f9ed in /usr/bin/clickhouse
1. ? @ 0xdb3d0a3 in /usr/bin/clickhouse
2. DB::MySQLReplication::MySQLFlavor::readPayloadImpl(DB::ReadBuffer&) @ 0xdb41983 in /usr/bin/clickhouse
3. DB::MySQLProtocol::IMySQLReadPacket::readPayload(DB::ReadBuffer&, unsigned char&) @ 0xdb29bb2 in /usr/bin/clickhouse
4. DB::MySQLProtocol::PacketEndpoint::tryReceivePacket(DB::MySQLProtocol::IMySQLReadPacket&, unsigned long) @ 0xdb2a6a3 in /usr/bin/clickhouse
5. DB::MaterializeMySQLSyncThread::synchronization(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xdb544b6 in /usr/bin/clickhouse
6. ? @ 0xdb72e2a in /usr/bin/clickhouse
7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x7d25aad in /usr/bin/clickhouse
8. ? @ 0x7d295d3 in /usr/bin/clickhouse
9. start_thread @ 0x7e65 in /usr/lib64/libpthread-2.17.so
10. __clone @ 0xfe88d in /usr/lib64/libc-2.17.so

2021.01.12 17:52:48.630860 [ 13966 ] {abb6f32b-079a-493a-8bf3-30c970a46a22} <Error> TCPHandler: Code: 32, e.displayText() = DB::Exception: Attempt to read after eof, Stack trace:

0. DB::ReadBuffer::throwReadAfterEOF() @ 0x7d3f9ed in /usr/bin/clickhouse
1. ? @ 0xdb3d0a3 in /usr/bin/clickhouse
2. DB::MySQLReplication::MySQLFlavor::readPayloadImpl(DB::ReadBuffer&) @ 0xdb41983 in /usr/bin/clickhouse
3. DB::MySQLProtocol::IMySQLReadPacket::readPayload(DB::ReadBuffer&, unsigned char&) @ 0xdb29bb2 in /usr/bin/clickhouse
4. DB::MySQLProtocol::PacketEndpoint::tryReceivePacket(DB::MySQLProtocol::IMySQLReadPacket&, unsigned long) @ 0xdb2a6a3 in /usr/bin/clickhouse
5. DB::MaterializeMySQLSyncThread::synchronization(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xdb544b6 in /usr/bin/clickhouse
6. ? @ 0xdb72e2a in /usr/bin/clickhouse
7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x7d25aad in /usr/bin/clickhouse
8. ? @ 0x7d295d3 in /usr/bin/clickhouse
9. start_thread @ 0x7e65 in /usr/lib64/libpthread-2.17.so
10. __clone @ 0xfe88d in /usr/lib64/libc-2.17.so



**How to reproduce**
just setting log_bin_use_v1_row_events  in my.cnf

* Which ClickHouse server version to use
20.12.4.5

**Additional context**
MySQL 5.7.31 and  MySQL8.0.21 both can reprod the bug.

auto iterator = master_info.need_dumping_tables.begin();
    for (; iterator != master_info.need_dumping_tables.end() && !is_cancelled(); ++iterator)
    {
        try
        {
            const auto & table_name = iterator->first;
            Context query_context = createQueryContext(context);
            String comment = "Materialize MySQL step 1: execute MySQL DDL for dump data";
            tryToExecuteQuery(query_prefix + " " + iterator->second, query_context, database_name, comment); 
            auto out = std::make_shared<CountingBlockOutputStream>(getTableOutput(database_name, table_name, query_context));
            MySQLBlockInputStream input(
                connection, "SELECT * FROM " + backQuoteIfNeed(mysql_database_name) + "." + backQuoteIfNeed(table_name),
                out->getHeader(), DEFAULT_BLOCK_SIZE);
            Stopwatch watch;
            copyData(input, *out, is_cancelled);
            const Progress & progress = out->getProgress();
            LOG_INFO(&Poco::Logger::get("MaterializeMySQLSyncThread(" + database_name + ")"),
                "Materialize MySQL step 1: dump {}, {} rows, {} in {} sec., {} rows/sec., {}/sec."
                , table_name, formatReadableQuantity(progress.written_rows), formatReadableSizeWithBinarySuffix(progress.written_bytes)
                , watch.elapsedSeconds(), formatReadableQuantity(static_cast<size_t>(progress.written_rows / watch.elapsedSeconds()))
                , formatReadableSizeWithBinarySuffix(static_cast<size_t>(progress.written_bytes / watch.elapsedSeconds())));
        }
        catch (Exception & exception)
        {
            exception.addMessage("While executing dump MySQL {}.{} table data.", mysql_database_name, iterator->first);
            throw;
        }
    }
}
static inline UInt32 randomNumber()