
To set up Nextcloud with MySQL, you'll need to choose a MySQL version that's compatible with Nextcloud. MySQL 5.6 is the recommended version for Nextcloud 19 and earlier, while MySQL 8.0 is recommended for Nextcloud 20 and later.
Nextcloud supports MySQL versions 5.6, 5.7, and 8.0. However, be aware that MySQL 5.6 is no longer supported by Oracle.
For a smooth Nextcloud experience, it's essential to configure your MySQL database correctly. This includes setting the correct character set and collation to ensure data integrity.
Requirements
Before you install Nextcloud, there's some groundwork to lay. You'll need to configure a few settings on your hosting account.
To start, check your hosting account's settings. Specifically, head to Settings -> Overview of Nextcloud. This is where you might see some warnings displayed.
If this caught your attention, see: Nextcloud Alternative Shared Hosting
Configuring Nextcloud
Configuring Nextcloud involves setting up a database, which is a crucial step in getting your cloud storage up and running.
To configure a MySQL or MariaDB database, you need to ensure the transaction isolation level is set to "READ-COMMITTED" in your MariaDB server configuration /etc/mysql/my.cnf. This will persist even after a restart of your database server.
For another approach, see: Move Nextcloud to New Server

You also need to verify the transaction_isolation and binlog_format in your MariaDB server configuration. Your /etc/mysql/my.cnf file should look like this:
transaction_isolation = READ-COMMITTED
binlog_format = ROW
Additionally, you need to install and enable the pdo_mysql extension in PHP, and ensure the mysql.default_socket points to the correct socket if the database runs on the same server as Nextcloud.
MariaDB is backwards compatible with MySQL, so all instructions work for both. You won't need to replace mysql with anything.
Here's a summary of the necessary PHP configuration:
- transaction_isolation = READ-COMMITTED
- binlog_format = ROW
Once you've set up your database, you need to create a database user and the database itself using the MySQL command line interface. The database tables will be created by Nextcloud when you login for the first time.
To start the MySQL command line mode, use the following command:
mysql -u root -p
or for MariaDB:
mariadb -u root -p
A mysql> or MariaDB [root]> prompt will appear. Now enter the following lines and confirm them with the enter key:
If this caught your attention, see: Important of Database
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'your_password';
You can quit the prompt by entering:
exit
A Nextcloud instance configured with MySQL would contain the hostname on which the database is running, a valid username and password to access it, and the name of the database. The config/config.php file would therefore contain entries like this:
'dbhost' => 'localhost',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpass' => 'your_password',
In case of UTF8MB4, you will also find:
'mysql.utf8mb4' => true,
Finally, you can update the config/config.php file to resolve issues with HTTP headers by adding the following line at the end of the file:
'default_charset' => 'UTF-8',
You can also change the location where Nextcloud stores temporary files by adding the following lines right after 'dbtype' => 'mysql':
'temp_directory' => '/path/to/temp/files',
Expand your knowledge: Azure Sql Version
Database Setup
To set up a database for Nextcloud, you'll need to install MariaDB and create a database. Install MariaDB using the command to start the database server and enable it to start upon server boot.
Consider reading: How to Install Nextcloud on Ubuntu 22.04
Run the mysql_secure_installation post-installation script to harden the security of your MariaDB server and set a 'root' password. Replace 'PASSWORD' with a strong password that's at least 10 characters long and includes a combination of letters and numbers.
To create a new user and database for Nextcloud, log in to the MariaDB server as user root. The installation should be successful, giving you the following output.
For another approach, see: Azure Mysql Flexible Server
Read Committed Transaction Isolation Level
Nextcloud uses the TRANSACTION_READ_COMMITTED transaction isolation level by default. This level is suitable for most use cases, but high load scenarios can lead to data loss.
Some database configurations enforce other transaction isolation levels. To avoid data loss, you need to configure the transaction isolation level accordingly.
High load scenarios, such as using the sync client with many clients/users and many parallel operations, can cause issues. This is when data loss can occur if the transaction isolation level is not properly set.
To prevent data loss, refer to the MySQL manual for detailed information on configuring the transaction isolation level. This will help you make informed decisions about your database setup.
Expand your knowledge: Microsoft Sql Server Management Studio vs Azure Data Studio
Install MariaDB
To install MariaDB, you'll need to start by installing the server using the command. Install MariaDB server using the following command.
This will get you started with a basic installation. Next, start the database server and enable it to start upon server boot.
You'll also want to run the mysql_secure_installation post-installation script to harden the security of your MariaDB server. Run the mysql_secure_installation post-installation script to harden the security of your MariaDB server and set a ‘root’ password.
Remember to replace ‘PASSWORD’ with an actual strong password, and aim for a combination of letters and numbers that's at least 10 characters long.
Additional reading: Nextcloud Security
Security
If you're using a Nextcloud MySQL version, you'll want to prioritize security. Enabling SSL for your MySQL database is crucial if your database doesn't reside on the same server as your Nextcloud instance.
This means you should enable SSL if you need to allow remote connections. It's a simple step, but it's essential for protecting your data.
To configure SSL, you'll need to adjust the paths to the pem files for your environment. This will vary depending on your setup, so be sure to get it right.
Installation
To install Nextcloud with MySQL, you'll need to have a basic understanding of Linux and database management.
First, update your package list with `sudo apt update`. This ensures you have the latest package information.
Next, install the MySQL server package with `sudo apt install mysql-server`. This will install the MySQL server software.
You'll also need to install the Nextcloud package with `sudo apt install nextcloud`. This will install the Nextcloud server software.
During the installation process, you'll be prompted to set a password for the MySQL root user. Make sure to set a strong password and keep it secure.
Nextcloud requires a database to store user data and other information. MySQL is a popular choice for this purpose due to its reliability and scalability.
To configure MySQL for Nextcloud, you'll need to create a new database with `mysql -u root -p`. This will open the MySQL command-line client.
Create a new database with `CREATE DATABASE nextcloud;`. This will create a new database for Nextcloud.
See what others are reading: Nextcloud Server
You'll also need to create a new user for Nextcloud with `CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';`. This will create a new user for Nextcloud.
Finally, grant privileges to the new user with `GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';`. This will grant the new user all privileges on the Nextcloud database.
You might like: Dropbox Mac Latest Version
Frequently Asked Questions
How can I check MySQL version?
To check the MySQL version, run the SQL command `SELECT VERSION();` while logged into MySQL. This command returns the version of the MySQL server you're connected to.
What database does Nextcloud support?
Nextcloud supports MySQL, MariaDB, Oracle 11g, and PostgreSQL databases. For production use, we recommend using MySQL or MariaDB for their reliability and performance.
Sources
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/linux_database_configuration.html
- https://docs.nextcloud.com/server/26/admin_manual/configuration_database/linux_database_configuration.html
- https://www.icdsoft.com/en/kb/view/1870_installing_nextcloud_version_16
- https://www.rosehosting.com/blog/how-to-install-nextcloud-13-on-debian-9/
- https://kyrofa.com/posts/snapping-nextcloud-mysql/
Featured Images: pexels.com