**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.

gtid_sets.update(gtid);
            String want = tc.want;
            String got = gtid_sets.toString();
            ASSERT(want == got)
        }
    }
    {
        
        try
        {
            boost::program_options::options_description desc("Allowed options");
            desc.add_options()("host", boost::program_options::value<std::string>()->required(), "master host")(
                "port", boost::program_options::value<std::int32_t>()->default_value(3306), "master port")(
                "user", boost::program_options::value<std::string>()->default_value("root"), "master user")(
                "password", boost::program_options::value<std::string>()->required(), "master password")(
                "gtid", boost::program_options::value<std::string>()->default_value(""), "executed GTID sets")(
                "db", boost::program_options::value<std::string>()->required(), "replicate do db")(
                "binlog_checksum", boost::program_options::value<std::string>()->default_value("CRC32"), "master binlog_checksum");
            boost::program_options::variables_map options;
            boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), options);
            if (argc == 0)
            {
                return 1;
            }
            auto host = options.at("host").as<DB::String>();
            auto port = options.at("port").as<DB::Int32>();
            auto master_user = options.at("user").as<DB::String>();
            auto master_password = options.at("password").as<DB::String>();
            auto gtid_sets = options.at("gtid").as<DB::String>();
            auto replicate_db = options.at("db").as<DB::String>();