Я выяснял проблему восстановления mysqlbinlog в течение нескольких дней и обнаружил, что это вызвано некоторыми неполными операторами SQL, которые содержат символ $.
Следующие операторы SQL регистрируются в общем журнале, а также отображаются в двоичных журналах:
delete from build_type$
insert into build_type$ values ('bt3')
delete from vcs_root_instance$
Почему эти операторы проходят (продолжение символа $). База данных содержит таблицы без символа $ - build_type, vcs_root_instance?
desc build_type;
+-------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| int_id | varchar(80) | NO | PRI | NULL | |
| config_id | varchar(80) | NO | UNI | NULL | |
| origin_project_id | varchar(80) | YES | | NULL | |
| delete_time | bigint(20) | YES | | NULL | |
+-------------------+-------------+------+-----+---------+-------+
Версия MariaDB: 10.2.23
Используйте обратные кавычки вокруг имен базы данных, таблиц и столбцов, если они содержат большинство специальных символов, включая $
. (Подчеркивание можно.) Пример:
delete from `build_type$`
А еще лучше не использовать $
.