Manual Installation Databases
Introduction
This document gives you an overview of databases supported by ownCloud. It describes some basic installation steps and how to create an administrative user for the database. This administrative user is necessary so that the ownCloud database and user who further manages the ownCloud database can be created The ownCloud database user has no access to other databases!
Possible Databases
When installing ownCloud Server & ownCloud Enterprise editions, the administrator may choose one of four supported database products. These are:
-
SQLite
-
MYSQL/MariaDB (recommended)
-
PostgreSQL
-
Oracle 11g (Enterprise-edition only)
After selecting and installing a database as described below, read the Database Configuration on Linux documentation for more information regarding database engine configuration. |
SQLite
SQLite is not supported by the ownCloud Enterprise edition. |
SQLite should only be used for testing and lightweight single user setups. |
SQLite has no client synchronization support, so other devices will not be able to synchronize with the data stored in an ownCloud SQLite database.
SQLite will be installed by ownCloud when installed via package manager. The necessary dependencies will be satisfied. If you used the package manager to install ownCloud, you may "Finish Setup" with no additional steps to configure ownCloud using the SQLite database for limited use.
MYSQL/MariaDB
MariaDB is the ownCloud recommended database. It may be used with either ownCloud Server or ownCloud Enterprise editions. Please look for additional configuration parameters in the Database Configuration on Linux guides.
Standard Installation
Use these commands to install MariaDB provided by Ubuntu and secure its installation.
At the time of writing, the following MariaDB Server versions will be installed, which may change when the corresponding package gets updated:
|
sudo apt install mariadb-server
sudo mysql_secure_installation
Check access and the version of MariaDB, replace <admin_user>
as either defined during mysql_secure_installation
above or use e.g. root
.
sudo mysqladmin -u <admin_user> -p version
If you get output like below, your database is up and running and ready to serve requests.
mysqladmin Ver 9.1 Distrib 10.4.21-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2021, Oracle, MariaDB Corporation Ab and others.
Server version 10.4.21-MariaDB-1:10.4.21+maria~bionic
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 59 min 51 sec
Threads: 16 Questions: 891020 Slow queries: 0 Opens: 119 Flush tables: 1 Open tables: 113 Queries per second avg: 248.125
Higher Stable Release
For information on how to install a higher stable release of MariaDB than the one provided by Ubuntu, refer to the MariaDB installation documentation.
The installation and use of MariaDB 10.6 and later is only supported and functional with ownCloud release 10.9 or above if it is a new ownCloud installation. Using an existing older version of ownCloud is not supported with MariaDB 10.6 and later. The necessary manual migration steps are only available with ownCloud release 10.9 or above. |
Upgrading an Existing Release
When upgrading from one minor version of MariaDB to another, e.g. from 10.4 to 10.5, follow the respective Upgrading MariaDB guide.
Do not upgrade a running ownCloud installation to MariaDB 10.6 and later until ownCloud release 10.9 or above is installed. ownCloud release 10.9 or above runs well with MariaDB lower than 10.6 and has special instructions for upgrading to MariaDB 10.6 and later. |
You must not skip minor releases of MariaDB when upgrading like from 10.4 → 10.6, you have to upgrade to each minor version in between step by step. |
If you have an existing installation of MariaDB and upgrade to a higher version, do not forget to run the following command to handle the new setup for admin users — especially when running an older version of MariaDB and upgrading to MariaDB 10.4.3 upwards:
|
Notes For MariaDB Lower Than 10.4.3
For MariaDB server releases lower than 10.4.3, you will be prompted during the installation to create a root password. Be sure to remember your password, as you will need it during the ownCloud database setup. |
To install an ownCloud database, you need an administrative user who can log in, has rights to create/modify databases and users. If this user does not exist, like on MariaDB server releases higher than 10.4.3, or if you want to create a temporary user for this task, you manually have to create one. You will be asked for the mysql root user’s password:
sudo mysql --user=root -p
CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Notes For MariaDB Higher Than 10.4.3
From MariaDB 10.4.3 onwards, the authentication method has changed to UNIX sockets. For details, please refer to: MariaDB: Authentication Plugin - Unix Socket. The unix_socket authentication plugin allows the user to use operating system credentials when connecting to MariaDB via a local UNIX socket. Follow the procedure below to create an admin user for non-socket login, giving ownCloud access to create its database for phpMyAdmin. This is not the ownCloud user!
|
phpmyadmin
If you want to install phpMyAdmin as a graphical interface for administering the database, run the following command:
sudo apt install phpmyadmin
After the installation, you need to configure your web server to access phpmyadmin
. This is a manual task, depending on what your setup looks like and is not part of this documentation.
You can run
to reconfigure phpmyadmin. |
PostgreSQL
To install postgres, use the following command (or that of your preferred package manager):
sudo apt-get install postgresql php-pgsql
In order to allow ownCloud access to the database, create an ownlcoud
user who owns the owncloud
database. The user and the database name can be any name that fits your needs.
Create the owncloud
PostgreSQL user account. Note that the default admin account post installing PostgreSQL is postgres
. If you have created another postgres admin user and disabled the default one, use the new one instead.
sudo -u postgres -c "createuser -e -P owncloud"
Define a password for the owncloud
user. Note to remember this password to access the database later on:
Enter new password:
Enter it again:
Create the owncloud
database owned by the owncloud
user:
sudo -u postgres -c "createdb -e -O owncloud owncloud"
Oracle 11g
Oracle 11g is only supported for the ownCloud Enterprise edition. Please see the Oracle Database Setup & Configuration in the Enterprise documentation section.