Я установил пару 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
сервер?
Требуемый параметр - read_only, а не innodb_read_only. Последнее не для описываемого вами варианта использования, оно предназначено для операций восстановления данных.
Получил ту же проблему. Выглядит как innodb_read_only=1
предотвращает репликацию. Если вы только установите read_only=1
репликация работает нормально.
Как хорошо объяснил Вот ведомый должен быть доступен только для чтения. Вы уверены, что никто не пытается писать в раб? Проверьте, доступен ли binlog.