diff --git a/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/BinlogReadOnlyIncrementalSnapshotChangeEventSource.java b/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/BinlogReadOnlyIncrementalSnapshotChangeEventSource.java index e4de564ba..f64fcde71 100644 --- a/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/BinlogReadOnlyIncrementalSnapshotChangeEventSource.java +++ b/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/BinlogReadOnlyIncrementalSnapshotChangeEventSource.java @@ -36,7 +36,6 @@ public abstract class BinlogReadOnlyIncrementalSnapshotChangeEventSource
{
private static final Logger LOGGER = LoggerFactory.getLogger(BinlogReadOnlyIncrementalSnapshotChangeEventSource.class);
- private static final String SHOW_MASTER_STMT = "SHOW MASTER STATUS";
private final GtidSetFactory gtidSetFactory;
diff --git a/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/jdbc/BinlogConnectorConnection.java b/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/jdbc/BinlogConnectorConnection.java
index f8a6d2856..237f8e837 100644
--- a/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/jdbc/BinlogConnectorConnection.java
+++ b/debezium-connector-binlog/src/main/java/io/debezium/connector/binlog/jdbc/BinlogConnectorConnection.java
@@ -47,6 +47,7 @@ public abstract class BinlogConnectorConnection extends JdbcConnection {
private static final String SQL_SHOW_SYSTEM_VARIABLES_CHARACTER_SET = "SHOW VARIABLES WHERE Variable_name IN ('character_set_server','collation_server')";
private static final String SQL_SHOW_SESSION_VARIABLE_SSL_VERSION = "SHOW SESSION STATUS LIKE 'Ssl_version'";
private static final String QUOTED_CHARACTER = "`";
+ public static final String MASTER_STATUS_STATEMENT = "SHOW MASTER STATUS";
private final ConnectionConfiguration connectionConfig;
private final BinlogFieldReader fieldReader;
@@ -422,6 +423,10 @@ public boolean validateLogPosition(Partition partition, OffsetContext offset, Co
return isBinlogPositionAvailable((BinlogConnectorConfig) config, gtidSet, binlogFilename);
}
+ public String binaryLogStatusStatement() {
+ return MASTER_STATUS_STATEMENT;
+ }
+
/**
* Determine whether the server has enabled GTID support.
*
diff --git a/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/BinlogConnectorIT.java b/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/BinlogConnectorIT.java
index f385a8948..3669dc002 100644
--- a/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/BinlogConnectorIT.java
+++ b/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/BinlogConnectorIT.java
@@ -580,7 +580,8 @@ private void shouldConsumeAllEventsFromDatabaseUsingSnapshotByField(Field dbIncl
BinlogPosition positionAfterUpdate = new BinlogPosition();
try (BinlogTestConnection db = getTestDatabaseConnection(DATABASE.getDatabaseName());) {
try (JdbcConnection connection = db.connect()) {
- connection.query("SHOW MASTER STATUS", positionBeforeInserts::readFromDatabase);
+ var statusStmt = db.binaryLogStatusStatement();
+ connection.query(statusStmt, positionBeforeInserts::readFromDatabase);
connection.execute("INSERT INTO products(id,name,description,weight,volume,alias) VALUES "
+ "(3001,'ashley','super robot',34.56,0.00,'ashbot'), "
+ "(3002,'arthur','motorcycle',87.65,0.00,'arcycle'), "
@@ -590,7 +591,7 @@ private void shouldConsumeAllEventsFromDatabaseUsingSnapshotByField(Field dbIncl
connection.print(rs);
}
});
- connection.query("SHOW MASTER STATUS", positionAfterInserts::readFromDatabase);
+ connection.query(statusStmt, positionAfterInserts::readFromDatabase);
// Change something else that is unrelated ...
connection.execute("UPDATE products_on_hand SET quantity=40 WHERE product_id=109");
connection.query("SELECT * FROM products_on_hand", rs -> {
@@ -598,7 +599,7 @@ private void shouldConsumeAllEventsFromDatabaseUsingSnapshotByField(Field dbIncl
connection.print(rs);
}
});
- connection.query("SHOW MASTER STATUS", positionAfterUpdate::readFromDatabase);
+ connection.query(statusStmt, positionAfterUpdate::readFromDatabase);
}
}
diff --git a/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/util/BinlogTestConnection.java b/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/util/BinlogTestConnection.java
index e05ff7820..4e1cf4b31 100644
--- a/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/util/BinlogTestConnection.java
+++ b/debezium-connector-binlog/src/test/java/io/debezium/connector/binlog/util/BinlogTestConnection.java
@@ -12,6 +12,7 @@
import java.sql.SQLException;
import io.debezium.config.Configuration;
+import io.debezium.connector.binlog.jdbc.BinlogConnectorConnection;
import io.debezium.jdbc.JdbcConfiguration;
import io.debezium.jdbc.JdbcConnection;
@@ -55,6 +56,18 @@ public String getMySqlVersionString() {
return versionString;
}
+ public String binaryLogStatusStatement() {
+ final var binaryLogStatus = "SHOW BINARY LOG STATUS";
+ try {
+ query(binaryLogStatus, rs -> {
+ });
+ return binaryLogStatus;
+ }
+ catch (SQLException e) {
+ return BinlogConnectorConnection.MASTER_STATUS_STATEMENT;
+ }
+ }
+
public abstract boolean isGtidEnabled();
/**
diff --git a/debezium-connector-mariadb/src/main/java/io/debezium/connector/mariadb/MariaDbSnapshotChangeEventSource.java b/debezium-connector-mariadb/src/main/java/io/debezium/connector/mariadb/MariaDbSnapshotChangeEventSource.java
index 9f315444d..be91be39a 100644
--- a/debezium-connector-mariadb/src/main/java/io/debezium/connector/mariadb/MariaDbSnapshotChangeEventSource.java
+++ b/debezium-connector-mariadb/src/main/java/io/debezium/connector/mariadb/MariaDbSnapshotChangeEventSource.java
@@ -61,7 +61,7 @@ protected void setOffsetContextBinlogPositionAndGtidDetailsForSnapshot(MariaDbOf
SnapshotterService snapshotterService)
throws Exception {
LOGGER.info("Read binlog position of MariaDB primary server");
- final String showMasterStmt = "SHOW MASTER STATUS";
+ final String showMasterStmt = connection.binaryLogStatusStatement();
connection.query(showMasterStmt, rs -> {
if (rs.next()) {
final String binlogFilename = rs.getString(1);
diff --git a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/MySqlReadOnlyIncrementalSnapshotChangeEventSource.java b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/MySqlReadOnlyIncrementalSnapshotChangeEventSource.java
index 59f32f71e..c414a1d94 100644
--- a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/MySqlReadOnlyIncrementalSnapshotChangeEventSource.java
+++ b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/MySqlReadOnlyIncrementalSnapshotChangeEventSource.java
@@ -11,8 +11,8 @@
import io.debezium.DebeziumException;
import io.debezium.connector.binlog.BinlogReadOnlyIncrementalSnapshotChangeEventSource;
import io.debezium.connector.binlog.gtid.GtidSet;
+import io.debezium.connector.binlog.jdbc.BinlogConnectorConnection;
import io.debezium.connector.mysql.gtid.MySqlGtidSet;
-import io.debezium.jdbc.JdbcConnection;
import io.debezium.pipeline.EventDispatcher;
import io.debezium.pipeline.notification.NotificationService;
import io.debezium.pipeline.source.spi.DataChangeEventListener;
@@ -71,10 +71,10 @@
*/
public class MySqlReadOnlyIncrementalSnapshotChangeEventSource extends BinlogReadOnlyIncrementalSnapshotChangeEventSource