docs: private void updateSettings() throws IOException {
          try {
              update("set wait_timeout=9999999");
          } catch (Exception e) {
              logger.warn("update wait_timeout failed", e);
          }
          try {
              update("set net_write_timeout=1800");
          } catch (Exception e) {
              logger.warn("update net_write_timeout failed", e);
          }
  
          try {
              update("set net_read_timeout=1800");
          } catch (Exception e) {
              logger.warn("update net_read_timeout failed", e);
          }
  
          try {
              // 设置服务端返回结果时不做编码转化，直接按照数据库的二进制编码进行发送，由客户端自己根据需求进行编码转化
              update("set names 'binary'");
          } catch (Exception e) {
              logger.warn("update names failed", e);
          }
  
          try {
              // mysql5.6针对checksum支持需要设置session变量
              // 如果不设置会出现错误： Slave can not handle replication events with the
              // checksum that master is configured to log
              // 但也不能乱设置，需要和mysql server的checksum配置一致，不然RotateLogEvent会出现乱码
              // '@@global.binlog_checksum'需要去掉单引号,在mysql 5.6.29下导致master退出
              update("set @master_binlog_checksum= @@global.binlog_checksum");
          } catch (Exception e) {
              if (!StringUtils.contains(e.getMessage(), "Unknown system variable")) {
                  logger.warn("update master_binlog_checksum failed", e);
              }
          }
  
          try {
              // 参考:https://github.com/alibaba/canal/issues/284
              // mysql5.6需要设置slave_uuid避免被server kill链接
              update("set @slave_uuid=uuid()");
          } catch (Exception e) {
              if (!StringUtils.contains(e.getMessage(), "Unknown system variable")) {
                  logger.warn("update slave_uuid failed", e);
              }
          }
  
          try {
              // mariadb针对特殊的类型，需要设置session变量
              update("SET @mariadb_slave_capability='" + LogEvent.MARIA_SLAVE_CAPABILITY_MINE + "'");
          } catch (Exception e) {
              if (!StringUtils.contains(e.getMessage(), "Unknown system variable")) {
                  logger.warn("update mariadb_slave_capability failed", e);
              }
          }
  
          /**
           * MASTER_HEARTBEAT_PERIOD sets the interval in seconds between
           * replication heartbeats. Whenever the master's binary log is updated
           * with an event, the waiting period for the next heartbeat is reset.
           * interval is a decimal value having the range 0 to 4294967 seconds and
           * a resolution in milliseconds; the smallest nonzero value is 0.001.
           * Heartbeats are sent by the master only if there are no unsent events
           * in the binary log file for a period longer than interval.
           */
          try {
              long periodNano = TimeUnit.SECONDS.toNanos(MASTER_HEARTBEAT_PERIOD_SECONDS);
              update("SET @master_heartbeat_period=" + periodNano);
          } catch (Exception e) {
              logger.warn("update master_heartbeat_period failed", e);
          }
      }