signal18 / replication-manager

Signal 18 repman - Replication Manager for MySQL / MariaDB / Percona Server
https://signal18.io/products/srm
GNU General Public License v3.0
647 stars 167 forks source link

Replication Manager Schema is incompatible with Super Read Only #789

Closed dibrother closed 1 month ago

dibrother commented 1 month ago

May I ask how to close this error. After upgrading 2.3.40 to 2.3.43, I received the following error message: I couldn't find the corresponding parameter to close it.

I have set the following parameters, it seems that the super.radonly parameter is preventing the creation of the table, but I did not set the enable event.

-- readonly and super_readonly
failover-readonly-state = true
failover-superreadonly-state = true

-- disable event
failover-event-scheduler = false
failover-event-status = false
2024/08/06 10:35:15 | [general] Error query CREATE TABLE IF NOT EXISTS replication_manager_schema.jobs(id INT NOT NULL auto_increment PRIMARY KEY, task VARCHAR(20), port INT, server VARCHAR(255), done TINYINT not null default 0, state tinyint not null default 0, result VARCHAR(1000), start DATETIME, end DATETIME, KEY idx1(task,done) ,KEY idx2(result(1),task), KEY idx3 (task, state), UNIQUE(task)) engine=innodb Error 1142: CREATE command denied to user 'sys_manager_user'@'10.10.2.13' for table 'jobs'
--
2024/08/06 10:35:15 | ERROR | [general] Error query CREATE TABLE IF NOT EXISTS replication_manager_schema.jobs(id INT NOT NULL auto_increment PRIMARY KEY, task VARCHAR(20), port INT, server VARCHAR(255), done TINYINT not null default 0, state tinyint not null default 0, result VARCHAR(1000), start DATETIME, end DATETIME, KEY idx1(task,done) ,KEY idx2(result(1),task), KEY idx3 (task, state), UNIQUE(task)) engine=innodb Error 1290: The MySQL server is running with the --super-read-only option so it cannot execute this statement
2024/08/06 10:35:15 | ERROR | [general] Error query CREATE TABLE IF NOT EXISTS replication_manager_schema.jobs(id INT NOT NULL auto_increment PRIMARY KEY, task VARCHAR(20), port INT, server VARCHAR(255), done TINYINT not null default 0, state tinyint not null default 0, result VARCHAR(1000), start DATETIME, end DATETIME, KEY idx1(task,done) ,KEY idx2(result(1),task), KEY idx3 (task, state), UNIQUE(task)) engine=innodb Error 1290: The MySQL server is running with the --super-read-only option so it cannot execute this statement
2024/08/06 10:35:15 | ERROR | [general] Error query CREATE DATABASE IF NOT EXISTS replication_manager_schema Error 1290: The MySQL server is running with the --super-read-only option so it cannot execute this statement
caffeinated92 commented 1 month ago

It seems your database is using super-read-only. Which not allow replication-manager to create it's own schema. I will add another validation so it will not create table if super read only is exists

dibrother commented 4 weeks ago

On version 2.3.44 ,The problem still exists.

image
dibrother commented 4 weeks ago
image
dibrother commented 4 weeks ago

I understand, it is necessary to grant the user the permission to replicate _manager_schema. *