MySQL Requirements
Native MySQL installation
Stages supports 8.0 Community Edition.
The following settings are highly recommended:
character-set-server=utf8 max_allowed_packet=500M innodb_lock_wait_timeout=7200 transaction-isolation=READ-COMMITTED lower_case_table_names=1 sql-mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" default-time-zone="+00:00"
The following settings are recommended for MySQL 8.0, especially to improve database write performance:
innodb_flush_log_at_trx_commit=2 sync_binlog=0 innodb_log_buffer_size=512M
Stages uses the INNODB engine. This can have impact on the server backup strategy, because INNODB files tend to become very large.
If you run Stages with a MySQL database and have a virus scanner installed on the same server, please make sure that the virus scanner is not scanning the database directory as this might lead to database inconsistencies. This problem is a known MySQL error and Oracle is advising to proceed as described.
The Windows 7 search feature causes the same kind of problems as a virus scanner. Please disable this feature on the Stages server.
Azure MySQL DB
For installing Stages with the Azure MySQL DB, all of the above applies as well.
In addition, the log_bin_trust_function_creators
parameter of Azure MySQL DB must be set to 1. See here for more info.
The connection timeout for Azure MySQL DB might be set very low. If you see connection errors after a while, you should set the connection timeout for Stages to 100 seconds via
torque.database.default.expiryTime=100000
in database.properties
.
AWS RDS for MySQL
All of the native MySQL and Azure MySQL DB requirements from above also apply to AWS RDS.
Required MySQL permissions
The Stages user needs the following permissions for the database that is configured in database.properties
- ALTER, CREATE, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, TRIGGER, UPDATE
Additionally, one of the following is required:
- The SUPER privilege, globally:
GRANT SUPER ON *.* TO 'stages'@'localhost';
- If this is not desirable, binary logging has to be disabled. Add the following line to the MySQL configuration file:
disable_log_bin=1