При репликации изменений, вызванных запросом, если мастер выбирает запись события в формате ROW
, имена столбцов не записываются в журнал - только значения, упорядоченные по порядковому положению каждого столбца в определении таблицы.
Это означает, что реплика может иметь больше или меньше столбцов, чем мастер, но если это так, расхождение должно быть ограничено крайними правыми столбцами таблицы.
Ваши изменения в реплике, по-видимому, привели к появлению новых столбцов где-то посередине, и это недопустимо.
Вы можете реплицировать таблицу с главного на подчиненное, так что у главных и подчиненных копий таблицы может быть разное количество столбцов при соблюдении следующих условий:
- Столбцы, общие для обеих версий таблицы, должны быть определены в одном и том же порядке на главном и подчиненном устройствах.
(Это верно, даже если в обеих таблицах одинаковое количество столбцов.)
- Столбцы, общие для обеих версий таблицы, должны быть определены перед любыми дополнительными столбцами.
Это означает, что выполнение оператора ALTER TABLE
на ведомом устройстве, в котором новый столбец вставляется в таблицу в пределах диапазона столбцов, общих для обеих таблиц, приводит к сбою репликации [...]
https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-features-more-columns.html