MySQL Binary Logging Problem with InnoDB When Creating a Workflow
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
症状
When creating a Workflow, the user receives exceptions like:
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'))
Another possible scenario:
com.atlassian.jira.plugin.ext.bamboo.service.PlanStatusUpdateServiceImpl:job [module.propertyset.ofbiz.OFBizPropertySet] Error setting value in PropertySet
org.ofbiz.core.entity.GenericEntityException: while updating: [GenericEntity:OSPropertyString][id,11709][value,true] (SQL Exception while executing the following:UPDATE propertystring SET propertyvalue=? WHERE ID=? (Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.))
原因
This is required by MySQL:
Statement based binlogging does not work in isolation level
READ UNCOMMITTED and READ COMMITTED since the necessary
locks cannot be taken.
ソリューション
To change to row based binary logging, set the following in /etc/my.cnf (or your my.cnf if it's elsewhere):
binlog_format=row
Please see http://dev.mysql.com/doc/refman/5.1/en/binary-log-setting.html for more information.