How to fix RSserver module database migration error?¶
When migrating database module RSserver error similar to the following may occur:
================
DB migrate table
================
+-+-----------+------+-----------------------------------------------------------------------------------------------------------------------------+
|N|Module name|Status|Result |
+-+-----------+------+-----------------------------------------------------------------------------------------------------------------------------+
|1|RSserver |FAIL |Error while db migrate: (pymysql.err.InternalError) (1419, 'You do not have the SUPER privilege and binary logging is enabled|
| | | |(you *might* want to use the less safe log_bin_trust_function_creators variable)') |
| | | |projects SET projects.reserve = [SQL: CREATE TRIGGER reserve_servers_create AFTER INSERT ON servers FOR EACH ROW BEGIN IF |
| | | |NEW.deleted = 0 THEN UPDATE projects.reserve + 1 WHERE BINARY projects.project_id = BINARY NEW.project_id AND |
| | | |projects.deleted = 0; END IF;END;] (Background on this error at: http://sqlalche.me/e/2j85) |
+-+-----------+------+-----------------------------------------------------------------------------------------------------------------------------+
END return value: True
This error appears if you have enabled work with logs (parameter log_bin
in the configuration file of the database) and logging of work with non-deterministic functions is not enabled (parameter log_bin_trust_function_creators
, by default has value of 0). Since RSserver includes non-deterministic functions, it is necessary to add the ability to work with them.
Solution¶
To add the ability to work with non-deterministic functions, you need to execute in the mysql
console:
SET GLOBAL log_bin_trust_function_creators = 1
After that, the database migration should be successful.