From 7fefd25151dc5d444d43cbff4e4ec9d4f8966380 Mon Sep 17 00:00:00 2001 From: Melroy van den Berg Date: Sat, 31 Oct 2026 15:52:39 +0100 Subject: [PATCH 1/4] Remove innodb_buffer_pool_instances from config Removed the innodb_buffer_pool_instances setting since its removed in MariaDB/MySQL. For quite some time now: https://mariadb.com/docs/release-notes/community-server/10.6/10.6.0#innodb-variables Signed-off-by: Melroy van den Berg --- .../configuration_database/linux_database_configuration.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/admin_manual/configuration_database/linux_database_configuration.rst b/admin_manual/configuration_database/linux_database_configuration.rst index 90ae631c235..7cca0c7af05 100644 --- a/admin_manual/configuration_database/linux_database_configuration.rst +++ b/admin_manual/configuration_database/linux_database_configuration.rst @@ -66,7 +66,6 @@ Your :file:`/etc/mysql/my.cnf` could look like this: [server] skip_name_resolve = 1 innodb_buffer_pool_size = 128M - innodb_buffer_pool_instances = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_max_dirty_pages_pct = 90 From 37b5498b7cd054e7fc6b12545effc301b7614887 Mon Sep 17 00:00:00 2001 From: Melroy van den Berg Date: Sat, 31 Oct 2026 16:09:12 +0100 Subject: [PATCH 2/4] docs: modernize database configuration examples Remove obsolete InnoDB and query cache options, replace legacy PHP MySQL settings with PDO socket guidance, and clarify engine-specific configuration. Assisted-by: Codex:GPT-6 Signed-off-by: Melroy van den Berg --- .../linux_database_configuration.rst | 39 ++++++------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/admin_manual/configuration_database/linux_database_configuration.rst b/admin_manual/configuration_database/linux_database_configuration.rst index 7cca0c7af05..ebfa548d5bd 100644 --- a/admin_manual/configuration_database/linux_database_configuration.rst +++ b/admin_manual/configuration_database/linux_database_configuration.rst @@ -69,10 +69,6 @@ Your :file:`/etc/mysql/my.cnf` could look like this: innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_max_dirty_pages_pct = 90 - query_cache_type = 1 - query_cache_limit = 2M - query_cache_min_res_unit = 2k - query_cache_size = 64M tmp_table_size= 64M max_heap_table_size= 64M slow_query_log = 1 @@ -91,38 +87,27 @@ Your :file:`/etc/mysql/my.cnf` could look like this: collation_server = utf8mb4_bin transaction_isolation = READ-COMMITTED binlog_format = ROW - innodb_large_prefix=on - innodb_file_format=barracuda innodb_file_per_table=1 -Please refer to the `page in the MySQL manual `_. +Please refer to the `page in the MariaDB manual `_. * That you have installed and enabled the pdo_mysql extension in PHP -* That the **mysql.default_socket** points to the correct socket (if the database runs on the same server as Nextcloud). +* If the database runs on the same server as Nextcloud, ensure that ``pdo_mysql.default_socket`` points to + the correct socket when using a Unix socket connection. -.. note:: MariaDB is backwards compatible with MySQL. All instructions work for both. You will not need to replace mysql with anything. +.. note:: -The PHP configuration in :file:`/etc/php7/conf.d/mysql.ini` could look like this: + MySQL and MariaDB share many configuration options, but some options are specific to one engine or version. + Check your database server's documentation before applying configuration changes. The include directories + in the example above are specific to Debian-based MariaDB installations; adjust them for your installation. -:: +Enable the PDO_MYSQL extension using your distribution's PHP packages. If you need to override the default +Unix socket path, set the following in the PHP configuration used by Nextcloud, adjusting the path for your server: + +.. code-block:: ini - # configuration for PHP MySQL module - extension=pdo_mysql.so - - [mysql] - mysql.allow_local_infile=On - mysql.allow_persistent=On - mysql.cache_size=2000 - mysql.max_persistent=-1 - mysql.max_links=-1 - mysql.default_port= - mysql.default_socket=/var/lib/mysql/mysql.sock # Debian squeeze: /var/run/mysqld/mysqld.sock - mysql.default_host= - mysql.default_user= - mysql.default_password= - mysql.connect_timeout=60 - mysql.trace_mode=Off + pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock Now you need to create a database user and the database itself by using the MySQL command line interface. The database tables will be created by Nextcloud From 98944d440f402e2d1fa532039c205fb1084f6957 Mon Sep 17 00:00:00 2001 From: Melroy van den Berg Date: Sat, 31 Oct 2026 16:11:40 +0100 Subject: [PATCH 3/4] docs: explain optional MySQL buffer pool setting Assisted-by: Codex:GPT-6 Signed-off-by: Melroy van den Berg --- .../configuration_database/linux_database_configuration.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/admin_manual/configuration_database/linux_database_configuration.rst b/admin_manual/configuration_database/linux_database_configuration.rst index ebfa548d5bd..1c9e241d202 100644 --- a/admin_manual/configuration_database/linux_database_configuration.rst +++ b/admin_manual/configuration_database/linux_database_configuration.rst @@ -66,6 +66,7 @@ Your :file:`/etc/mysql/my.cnf` could look like this: [server] skip_name_resolve = 1 innodb_buffer_pool_size = 128M + # innodb_buffer_pool_instances = 1 # MySQL only; removed in MariaDB 10.6. innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_max_dirty_pages_pct = 90 From 1273860a71dcfc463f7cdc1475f20d3691fea2f6 Mon Sep 17 00:00:00 2001 From: Melroy van den Berg Date: Sat, 31 Oct 2026 16:25:23 +0100 Subject: [PATCH 4/4] docs: clarify PHP-FPM socket override configuration Assisted-by: Codex:GPT-6 Signed-off-by: Melroy van den Berg --- .../linux_database_configuration.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/admin_manual/configuration_database/linux_database_configuration.rst b/admin_manual/configuration_database/linux_database_configuration.rst index 1c9e241d202..77ddaf3208d 100644 --- a/admin_manual/configuration_database/linux_database_configuration.rst +++ b/admin_manual/configuration_database/linux_database_configuration.rst @@ -110,6 +110,14 @@ Unix socket path, set the following in the PHP configuration used by Nextcloud, pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock +On Ubuntu with PHP 8.5-FPM, put this override in :file:`/etc/php/8.5/fpm/conf.d/99-nextcloud.ini` +instead of editing the package-managed :file:`20-pdo_mysql.ini`. Adjust the version and socket path; +only override an incorrect default. Then reload PHP-FPM:: + + sudo systemctl reload php8.5-fpm + +For CLI commands, configure the override separately in :file:`/etc/php/8.5/cli/conf.d/` if needed. + Now you need to create a database user and the database itself by using the MySQL command line interface. The database tables will be created by Nextcloud when you login for the first time.