in seatunnel-datasource/seatunnel-datasource-plugins/datasource-mysql-cdc/src/main/java/org/apache/seatunnel/datasource/plugin/cdc/mysql/MysqlCDCDataSourceChannel.java [108:151]
protected boolean checkJdbcConnectivity(Map<String, String> requestParams) {
try (Connection connection = init(requestParams);
Statement statement = connection.createStatement()) {
try (ResultSet resultSet = statement.executeQuery("SHOW MASTER STATUS"); ) {
if (resultSet.next()) {
String binlogFile = resultSet.getString("File");
if (StringUtils.isBlank(binlogFile)) {
throw new DataSourcePluginException("binlog must be enabled");
}
} else {
throw new DataSourcePluginException("binlog must be enabled");
}
}
try (ResultSet resultSet =
statement.executeQuery("SHOW VARIABLES LIKE 'binlog_format'")) {
if (resultSet.next()) {
String binlogFormat = resultSet.getString("Value");
if (!"ROW".equalsIgnoreCase(binlogFormat)) {
throw new DataSourcePluginException("binlog_format must be ROW");
}
} else {
throw new DataSourcePluginException("binlog_format must be ROW");
}
}
try (ResultSet resultSet =
statement.executeQuery("SHOW VARIABLES LIKE 'binlog_row_image'")) {
if (resultSet.next()) {
String binlogRowImage = resultSet.getString("Value");
if (!"FULL".equalsIgnoreCase(binlogRowImage)) {
throw new DataSourcePluginException("binlog_row_image must be FULL");
}
} else {
throw new DataSourcePluginException("binlog_row_image must be FULL");
}
}
return true;
} catch (Exception e) {
throw new DataSourcePluginException(
"check jdbc connectivity failed, " + e.getMessage(), e);
}
}