Update to 21.0.0 database error

Nextcloud version _: 21.0.0
Operating system and version: Ubuntu 18.04
Apache or nginx version : Apache/2.4.29 (Ubuntu)
PHP version : 7.4

The issue you are facing:

Is this the first time you’ve seen this error? : Y

Steps to replicate it:

  1. Change MariaDB from 10.1 to 10.2
  2. Set update channel to beta
  3. Only php memory warning is displayed
  4. click on update to Nextcloud 21.0.0
  5. Wait till all preparations are done
  6. Click on “update via web interface”
  7. Click on “start update”.
  8. Wait for some minutes. Then an error occures.
...
App-Store auf Aktualisierung für die App "richdocuments" geprüft

Suche nach einer Aktualisierung für die App "spreed" im App-Store

Aktualisiere die App "spreed" aus dem App-Store

Reparaturschritt: Fix the namespace in database tables

Es ist ein Fehler aufgetreten.
  1. On my homepage there is alwys mainteance displayed so changed mainteance mode in config.php to false
  2. reload page. now the update to version 21 dialog is shown again.
  3. click on update. Now it works.
  4. Go to settings. There are missing database indexes displayed.

* In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von "occ db:add-missing-indices" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.

  *  Fehlender Index "fs_size" in der Tabelle "oc_filecache".
  1. run sudo -u mynextcloudusername php occ db:add-missing-indices

Now this errors occures:

Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: could not find driver in /var/www/vhosts/mydomain/nextcloud/lib/private/DB/Connection.php:85
Stack trace:
#0 /var/www/vhosts/mydomain/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1486): OC\DB\Connection->connect()
#1 /var/www/vhosts/mydomain/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1014): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /var/www/vhosts/mydomain/nextcloud/lib/private/DB/Connection.php(226): Doctrine\DBAL\Connection->executeQuery()
#3 /var/www/vhosts/mydomain/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(210): OC\DB\Connection->executeQuery()
#4 /var/www/vhosts/mydomain/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(286): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /var/www/vhosts/mydomain/nextcloud/lib/private/AppConfig.php(345): OC\DB\QueryBuilder\QueryBuilder->execute()
#6 /var/www/vhosts/mydomain/nextcloud/lib/private/AppConfig.php(110): OC\AppConfig->loadConfigValues()
#7 /var/www/vhosts/mydomain/nextcloud/lib/private/AppConfig.php(301): OC\AppConfig->getApps()
#8 /var/www/vhosts/mydomain/nextcloud/lib/private/legacy/OC_App.php(957): OC\AppConfig->getValues()
#9 /var/www/vhosts/mydomain/nextcloud/lib/private/Server.php(678): OC_App::getAppVersions()
#10 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC\{closure}()
#11 /var/www/vhosts/mydomain/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#12 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet()
#13 /var/www/vhosts/mydomain/nextcloud/lib/private/ServerContainer.php(137): OC\AppFramework\Utility\SimpleContainer->query()
#14 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#15 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(177): OC\AppFramework\Utility\SimpleContainer->get()
#16 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#17 /var/www/vhosts/mydomain/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#18 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet()
#19 /var/www/vhosts/mydomain/nextcloud/lib/private/ServerContainer.php(137): OC\AppFramework\Utility\SimpleContainer->query()
#20 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#21 /var/www/vhosts/mydomain/nextcloud/lib/private/Server.php(1018): OC\AppFramework\Utility\SimpleContainer->get()
#22 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC\{closure}()
#23 /var/www/vhosts/mydomain/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#24 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet()
#25 /var/www/vhosts/mydomain/nextcloud/lib/private/ServerContainer.php(137): OC\AppFramework\Utility\SimpleContainer->query()
#26 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#27 /var/www/vhosts/mydomain/nextcloud/lib/private/Server.php(1977): OC\AppFramework\Utility\SimpleContainer->get()
#28 /var/www/vhosts/mydomain/nextcloud/lib/private/Files/View.php(119): OC\Server->getLockingProvider()
#29 /var/www/vhosts/mydomain/nextcloud/lib/private/Server.php(426): OC\Files\View->__construct()
#30 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC\{closure}()
#31 /var/www/vhosts/mydomain/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#32 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet()
#33 /var/www/vhosts/mydomain/nextcloud/lib/private/ServerContainer.php(137): OC\AppFramework\Utility\SimpleContainer->query()
#34 /var/www/vhosts/mydomain/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#35 /var/www/vhosts/mydomain/nextcloud/lib/private/Server.php(1340): OC\AppFramework\Utility\SimpleContainer->get()
#36 /var/www/vhosts/mydomain/nextcloud/lib/base.php(588): OC\Server->boot()
#37 /var/www/vhosts/mydomain/nextcloud/lib/base.php(1076): OC::init()
#38 /var/www/vhosts/mydomain/nextcloud/console.php(49): require_once('/var/www/vhosts...')
#39 /var/www/vhosts/mydomain/nextcloud/occ(11): require_once('/var/www/vhosts...') 

The output of your Nextcloud log in Admin > Logging:
(they are repeating)

Debug	files_mindmap	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_markdown	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_sharing	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	encryption	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	drawio	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	contacts	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_mindmap	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_markdown	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_sharing	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	encryption	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	drawio	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	contacts	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_mindmap	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_markdown	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_sharing	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	encryption	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	drawio	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	contacts	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_mindmap	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_markdown	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_sharing	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	encryption	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	drawio	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	contacts	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.	
in 1 Minuten
Debug	files_mindmap	/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.
scss_cacher	SCSSCacher::isCached 1980-0220-settings.css dependencies successfully cached for 5 minutes

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):


<?php
$CONFIG = array (
  'passwordsalt' => '****',
  'secret' => '****',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'nc.****.de',
  ),
  'datadirectory' => '/var/www/vhosts/gernotgoetz.de/.nextcloud/data/5e667ecf4605',
  'dbtype' => 'mysql',
  'version' => '21.0.0.18',
  'overwrite.cli.url' => 'http://localhost',
  'dbname' => 'nextcloud_d5b8f4a8',
  'dbhost' => 'localhost:3306',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'ncuser_d5b8f4a8',
  'dbpassword' => '5P6Ca!#B27!IFuf8ti',
  'installed' => true,
  'instanceid' => 'oc8832d20jsy',
  'mail_from_address' => 'system',
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => '****',
  'mail_smtphost' => '****',
  'mail_smtpauth' => 1,
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpname' => '****',
  'mail_smtppassword' => '****',
  'mail_smtpport' => '587',
  'mail_smtpsecure' => 'tls',
  'mysql.utf8mb4' => true,
  'maintenance' => false,
  'updater.secret' => '****',
  'theme' => '',
  'loglevel' => 0,
  'updater.release.channel' => 'beta',
)

The output of your Apache/nginx/system log in /var/log/____:

I am not sure what I should post here. There are like 40 files in this folder and about 10 subfolders

Why did the first database error appeared?
And more important: How can I fix my database?

Die Meldung deutet für mich darauf hin, dass das php-mysql-Modul vermutlich in der PHP-Web-Konfiguration geladen wird, nicht aber der PHP-CLI-Konfiguration. Ob dem so ist, kannst Du durch folgenden Befehl feststellen:

php -m | grep sql
1 Like

Danke für die schnelle Antwort.
Ich hatte erst kurz davor mein CLP PHP von 7.2 auf 7.4 umgestellt und vergessen Module zu installieren. Für die Web-Konfiguration habe ich die PHP-Version über Plesk installiert.
Für alle die einen ähnlichen Fehler haben: Ich habe alle Module, die hier aufgelistet sind noch manuell installiert und anschließend den apache neugestartet: Installation on Linux — Nextcloud latest Administration Manual latest documentation

Nun hat das occ-Skript funktioniert.

Ich frage mich nur, weshalb der Fehler beim ersten Update-Versuch auftrat und nachher nicht mehr.

1 Like