Updated description of MySQL/MariaDB BINLOG requirement.

This commit is contained in:
RealRancor
2015-10-30 19:31:41 +01:00
parent 4908f7164e
commit de92218af3
3 changed files with 36 additions and 12 deletions

View File

@@ -17,6 +17,37 @@ Choosing to use MySQL / MariaDB, PostgreSQL, or Oracle as your database requires
.. note:: The steps for configuring a third party database are beyond the scope of this document. Please refer to the documentation for your specific database choice for instructions.
.. _db-binlog-label:
MySQL / MariaDB with Binary Logging Enabled
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ownCloud is currently using a ``TRANSACTION_READ_COMMITTED`` transaction isolation
to avoid data loss under high load scenarios (e.g. by using the sync client with
many clients/users and many parallel operations). This requires a disabled or
correctly configured binary logging when using MySQL or MariaDB. Your system is
affected if you see the following in your log file during the installation or
update of ownCloud:
An unhandled exception has been thrown:
exception 'PDOException' with message '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.'
There are two solutions. One is to disable binary logging. Binary logging
records all changes to your database, and how long each change took. The
purpose of binary logging is to enable replication and to support backup
operations.
The other is to change the BINLOG_FORMAT = STATEMENT in your database
configuration file, or possibly in your database startup script, to
BINLOG_FORMAT = MIXED. See `Overview of the Binary
Log <https://mariadb.com/kb/en/mariadb/overview-of-the-binary-log/>`_ and `The
Binary Log <https://dev.mysql.com/doc/refman/5.6/en/binary-log.html>`_ for
detailed information.
Parameters
----------
For setting up ownCloud to use any database, use the instructions in :doc:`../installation/installation_wizard`. You should not have to edit the respective values in the :file:`config/config.php`. However, in special cases (for example, if you want to connect your ownCloud instance to a database created by a previous installation of ownCloud), some modification might be required.

View File

@@ -70,4 +70,7 @@ options.
**Running ownCloud in a subdir**: If you're running ownCloud in a subdir and
want to use CalDAV or CardDAV clients make sure you have configured the correct
:ref:`service-discovery-label` URLs.
:ref:`service-discovery-label` URLs.
**Note for MySQL/MariaDB environments**: Please refer to :ref:`db-binlog-label`
on how to correctly configure your environment if you have binary logging enabled.

View File

@@ -260,17 +260,7 @@ enabled, your upgrade may fail with these errors in your MySQL/MariaDB log::
to row-based logging. InnoDB is limited to row-logging when transaction
isolation level is READ COMMITTED or READ UNCOMMITTED.'
There are two solutions. One is to disable binary logging. Binary logging
records all changes to your database, and how long each change took. The
purpose of binary logging is to enable replication and to support backup
operations.
The other is to change the BINLOG_FORMAT = STATEMENT in your database
configuration file, or possibly in your database startup script, to
BINLOG_FORMAT = MIXED. See `Overview of the Binary
Log <https://mariadb.com/kb/en/mariadb/overview-of-the-binary-log/>`_ and `The
Binary Log <https://dev.mysql.com/doc/refman/5.6/en/binary-log.html>`_ for
detailed information.
Please refer to :ref:`db-binlog-label` on how to correctly configure your environment.
Occasionally, *files do not show up after a upgrade*. A rescan of the files can help::