innodb-только для чтения предотвратить репликацию mysql? Таблица gtid_slave_pos доступна только для чтения

Я установил пару контейнеров maraidb v10.2.10 с официальным образом докера . Мастер может читать / писать, а подчиненное устройство доступно только для чтения с этим my.cnf.

[mysqld]
server_id=2
read_only=1
innodb_read_only=1

Репликация некоторое время работала хорошо, но остановилась из-за следующей ошибки:

Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1942
Last_Error: Error during COMMIT: failed to update GTID state in mysql.gtid_slave_pos: 1036: Table 'gtid_slave_pos' is read only

Я добавил эту строку в my.cnf подчиненного устройства и установил ее снова с самого начала, но все равно получил ту же ошибку.

replicate-ignore-table=mysql.gtid_slave_pos

Означает ли это, что Innodb не может реплицироваться на сервер innodb-read-only ?

0
задан 8 November 2017 в 10:55
3 ответа

Как хорошо объяснено здесь подчиненное устройство должно быть доступно только для чтения. Вы уверены, что никто не пытается писать в раб? Проверьте, доступен ли binlog.

0
ответ дан 5 December 2019 в 07:10

Возникла та же проблема. Похоже, innodb_read_only = 1 предотвращает репликацию. Если вы установите только read_only = 1 , репликация работает нормально.

1
ответ дан 10 April 2020 в 19:45

Требуемый параметр - read_only, а не innodb_read_only. Последнее не для описываемого вами варианта использования, оно предназначено для операций восстановления данных.

1
ответ дан 11 April 2020 в 01:10

Теги

Похожие вопросы