Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

binlog format for source db is not compatible error #204

Closed
RiaanPretoriusSA opened this issue Aug 19, 2020 · 7 comments
Closed

binlog format for source db is not compatible error #204

RiaanPretoriusSA opened this issue Aug 19, 2020 · 7 comments

Comments

@RiaanPretoriusSA
Copy link

I keep getting this error even after changing the binlog_format to ROW and i confirmed that binlog_row_image is set to FULL

ERRO[0000] binlog format for source db is not compatible error="sql: no rows in result set" tag=ferry

Now what would be causing that?
a bug, source DB not configured correctly?

The error message does not give any more clue's as to what might be wrong

@hkdsun
Copy link
Contributor

hkdsun commented Aug 19, 2020

Can you tell us more about your configuration? What flavour of mysql are you running? Can you show us your config?

@RiaanPretoriusSA
Copy link
Author

Sure 👍

I have mariadb 10.1 on one server and mariadb 10.3 on the other. Both running a Linux flavor. The one is ubuntu 16 and the other (destination) is centos 8.2

@RiaanPretoriusSA
Copy link
Author

Anything specifics you wish to know about? command output etc?

@shuhaowu
Copy link
Contributor

Not sure if Ghostferry works with Mariadb out of the box. The error is you are experiencing is emitted somewhere here:

https://github.com/Shopify/ghostferry/blob/master/ferry.go#L933-L969

One of those queries appear like it doesn't work with Mariadb.

@RiaanPretoriusSA
Copy link
Author

had a look a the code and what it expects:

Manual query output:

MariaDB [(none)]> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_row_image';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| binlog_row_image | FULL |
+------------------+-------+
1 row in set (0.01 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_rows_query_log_events';
Empty set (0.00 sec)

I also read up on that variable for MariaDB, sounds like it was removed:

https://severalnines.com/blog/migrating-mysql-enterprise-mariadb-103

https://mariadb.com/kb/en/system-variable-differences-between-mariadb-102-and-mysql-57/

So from the looks of it ghostferry won't every work with mariadb :(

@shuhaowu
Copy link
Contributor

Actually it should work with mariadb, you're encountering #203: You also should specify SkipTargetVerification to be true, as this option is currently default to be false. This causes some confusion as the docs are not up to date.

@shuhaowu
Copy link
Contributor

There's also the config variable SkipBinlogRowImageCheck, which is used for earlier mysql and mariadb versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants