JIRA Cannot Create Issues when Using MySQL with Binary Logging
If you use JIRA with MySQL and attempt to create a JIRA issue or upgrade a plugin, JIRA may generate an error similar to the following:
Error creating issue: Could not create workflow instance: root cause: while inserting: [GenericEntity:OSWorkflowEntry][id,null][name,jira][state,0] (SQL Exception while executing the following:INSERT INTO OS_WFENTRY (ID, NAME, INITIALIZED, STATE) VALUES (?, ?, ?, ?) (Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'))
Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
You may encounter this problem if your JIRA MySQL database configuration:
- Makes use of the InnoDB database storage engine (which is recommended)
- Uses MySQL's default binary logging format
JIRA uses the 'READ-COMMITTED' transaction isolation level with MySQL, which currently only supports row-based binary logging. For more information about this, please refer to MySQL issue no. 40360.
To overcome this problem, you must configure MySQL's binary logging format to use 'row-based' binary logging
- Shutdown JIRA and your MySQL service if necessary.
Open the MySQL configuration file (
my.cnf) in a text editor.
On UNIX-based systems, this file may be located in the
binlog_formatproperty in this file in the
[mysqld]section and ensure that its value is
row, such that you end up with:
This is only needed (and valid) for MySQL versions 5.1.5 and later.
- Save your changes to this file and restart your MySQL service and JIRA.