大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format

数据,业务,采集,flinkcdc,the,mysql,server,is,not,configured,to,use,row,binlog,format · 浏览次数 : 220

小编点评

The error message indicates that the MySQL server is not configured to use a ROW binlog format, which is required for the Kafka Connect connector to work properly. **Steps to resolve the issue:** 1. **Check MySQL configuration:** - Use the `SHOW VARIABLES LIKE "binlog_format%"` command to view the current binlog format. - Ensure that the `binlog_format` variable is set to `STATEMENT`. 2. **Restart Kafka Connect connector:** - Stop the Kafka Connect connector application. - Modify the `my.cnf` configuration file and set the `binlog_format` variable to `STATEMENT`. - Restart the connector application. 3. **Modify `my.cnf` configuration:** - Add the following lines to the `my.cnf` configuration file: ``` binlog_format = 'STATEMENT' binlog_format = 'ROW' binlog_format = 'MIXED' ``` 4. **Restart MySQL server:** - Restart the MySQL server. 5. **Verify that connector is working correctly:** - Start the Kafka Connect connector application. - Ensure that data is flowing correctly from MySQL to the target system. **Additional notes:** - The `binlog_format` variable controls how MySQL writes log events to the binary log file. - The `STATEMENT` format is recommended for production environments. - The `ROW` and `MIXED` formats may be suitable for specific use cases.

正文

Caused by: org.apache.kafka.connect.errors.ConnectException: The MySQL server is not configured to use a ROW binlog_format, which is required for this connector to work properly. Change the MySQL configuration to use a binlog_format=ROW and restart the connector.
	at io.debezium.connector.mysql.MySqlConnectorTask.start(MySqlConnectorTask.java:211)
	at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:106)
	at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:758)
	at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:171)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

查看mysql的service方式:

SHOW VARIABLES LIKE "binlog_format%";

image

修改 my.cnf

log-bin=mysql-bin
#binlog_format="STATEMENT"
binlog_format="ROW"
#binlog_format="MIXED"
#service-id=1

重启后
image

也可运行时动态修改

mysql> SET SESSION binlog_format = 'STATEMENT';

mysql> SET SESSION binlog_format = 'ROW';

mysql> SET SESSION binlog_format = 'MIXED';

mysql> SET GLOBAL binlog_format = 'STATEMENT';

mysql> SET GLOBAL binlog_format = 'ROW';

mysql> SET GLOBAL binlog_format = 'MIXED';

与大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format相似的内容: