innodb-read-only 阻止 mysql 复制?表 'gtid_slave_pos' 是只读的

innodb-read-only 阻止 mysql 复制?表 'gtid_slave_pos' 是只读的

我设置了几个maraidb v10.2.10容器官方 docker 镜像. 使用此 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服务器?

答案1

正如解释的那样这里从服务器应为只读。您确定没有人试图写入从服务器吗?检查 binlog 是否可用。

答案2

遇到了同样的问题。看起来innodb_read_only=1阻止了复制。如果您只设置read_only=1复制,则工作正常。

答案3

您要查找的设置是 read_only,而不是 innodb_read_only。后者不适用于您描述的用例,它旨在用于数据恢复操作。

相关内容