ownCloudのバージョンアップに失敗した場合の対処方法
提供: Wikiducca
ownCloud を最新版 (8.0.3) にアップデートしようとした際、途中でエラーになってしまった。
目次
エラーの内容
An exception occurred while executing 'INSERT INTO `oc_oc_appconfig_abcde1234fghi` SELECT * FROM `oc_appconfig`': SQLSTATE[HY000]: General error: 1665 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.
対策
MySQL の 'binlog_format' を変更する
'MIXED' にすれば良いらしい。
現在の設定を確認
mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format'; +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | binlog_format | STATEMENT | +---------------+-----------+ 1 row in set (0.00 sec)
'MIXED' に変更
mysql> SET GLOBAL binlog_format = 'MIXED'; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | MIXED | +---------------+-------+ 1 row in set (0.00 sec) mysql> mysql> quit Bye
以上でエラーが出なくなり、アップデートに成功した。
/etc/my.cnf も修正
なければ追記。
binlog_format = MIXED
これで再起動後も反映される。