apache/seatunnel · error · DebeziumException
Error reading MySQL variables:
Error message
Error reading MySQL variables:
What it means
MySqlConnection.querySystemVariables runs a SQL query (e.g. SHOW VARIABLES) over a JDBC connection and wraps any SQLException into a DebeziumException with this message. It means the connector could not read MySQL server system variables needed to build its connection context. The original SQLException is preserved as the cause.
Source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/io/debezium/connector/mysql/MySqlConnection.java:172
final Map<String, String> variables = new HashMap<>();
try {
query(
statement,
rs -> {
while (rs.next()) {
String varName = rs.getString(1);
String value = rs.getString(2);
if (varName != null && value != null) {
variables.put(varName, value);
LOGGER.debug(
"\t{} = {}",
Strings.pad(varName, 45, ' '),
Strings.pad(value, 45, ' '));
}
}
});
} catch (SQLException e) {
throw new DebeziumException("Error reading MySQL variables: " + e.getMessage(), e);
}
return variables;
}
protected String setStatementFor(Map<String, String> variables) {
StringBuilder sb = new StringBuilder("SET ");
boolean first = true;
List<String> varNames = new ArrayList<>(variables.keySet());
Collections.sort(varNames);
for (String varName : varNames) {
if (first) {
first = false;
} else {
sb.append(", ");
}
sb.append(varName).append("=");
String value = variables.get(varName);View on GitHub (pinned to cf67b549a7)
Solutions
- Verify MySQL host, port, username and password in the connector configuration and test with a mysql client
- Confirm the MySQL user can connect and run SHOW VARIABLES (grant as needed)
- Check network reachability, firewall rules, and TLS settings between the connector and MySQL
- Inspect the wrapped SQLException (cause) for the root cause and fix accordingly
Example fix
// before: generic user/password
MySQLConnection config = MySqlConnection.create(
MySqlConnectionConfiguration.builder()
.withHostname("wrong-host") ... );
// after: verified reachable endpoint
MySQLConnection config = MySqlConnection.create(
MySqlConnectionConfiguration.builder()
.withHostname("mysql.internal")
.withPort(3306)
.withUser("debezium")
.withPassword("secret") ... ); Defensive patterns
Strategy: try-catch
Validate before calling
try (Connection c = DriverManager.getConnection(url, user, pass)) { try (Statement s = c.createStatement(); ResultSet rs = s.executeQuery("SHOW VARIABLES")) { rs.next(); } } Try / catch
try { mysqlConnection.sessionVariables(); } catch (DebeziumException e) { logger.error("Failed to read MySQL variables", e.getCause()); /* fail fast or retry with backoff */ } Prevention
- Validate DB connectivity with a mysql client before starting the connector
- Use a dedicated CDC user with SHOW VARIABLES privileges
- Set sane connection timeouts and test TLS config early
- Monitor DB health/restarts around connector startup
When it happens
Trigger: Any SQLException thrown while executing the variables query inside querySystemVariables, invoked via readMySqlCharsetSystemVariables, readMySqlSystemVariables, or sessionVariables — e.g. connection dropped mid-query, bad credentials, unknown database, or server refused the statement.
Common situations: Wrong hostname/port or firewall blocking the DB during connector startup; MySQL user lacking privileges to execute SHOW VARIABLES; server restarted or connection timed out; SSL/TLS mismatch between driver and server.
Understand the failure class
Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.
Related errors
- Snapshotting of table ${table.id()} failed
- Unexpected error while connecting to MySQL and looking at GT
- Unexpected error while connecting to MySQL and looking at pr
- Unexpected error while connecting to MySQL and looking for b
- Unexpected error while connecting to MySQL and looking at BI
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/e17a15e08e7e4550.
Report an issue: GitHub.