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)
AND - 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/etc
directory.Locate the
binlog_format
property in this file in the[mysqld]
section and ensure that its value isrow
, such that you end up with:binlog_format=row
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.