Op mijn server draai ik sinds kort Nextcloud. Het viel me echter op dat de databasebestanden van de MySQLserver sindsdien enkele gigabyte groot zijn. In Nextcloud heb ik echter maar enkele honderden megabyte opgeslagen. Wat gaat hier mis?
Nextcloud gebruikt een databasecache om data voor externe bestandssystemen sneller aan te bieden. Bij grote bestandssystemen kan die echter snel zeer groot worden. Vermoedelijk heb je een root-bestandssysteem van een externe Linux-server via SSH gekoppeld. Dan groeit de tabel voor de cache flink. Met de beschikbare tools kun je de database-items wel verwijderen, maar de MySQL-bestanden worden dan niet kleiner.
De enige manier om de grootte van de MySQL-bestanden te reduceren is door de database opnieuw te maken. Allereerst moet je bestaande SSH- of SMB-verbindingen naar grote directory’s in Nextcloud verwijderen. Daarna maak je met behulp van het programma mysqldumper een dump van de bestaande database:
mysqldump –all-databases -uroot -pSQLROOTWACHTWOORD > nextcloud.sql
Vervolgens stop je het databaseproces en kopieer je de map met de MySQL-bestanden (standaard /var/lib/mysql). Die kopie heb je dan als reserve. Verwijder dan alle bestanden in de MySQL-map en start het MySQL-proces weer. Dan zet je de dump met het programma mysql weer terug:
mysql -u root -pSQLROOTWACHTWOORD < nextcloud.sql
De Nextcloud-database zou dan weer normale proporties moeten hebben.