Communityoplossing

Nextcloud en MariaDB op CasaOS: verbindingsweigering oplossen

A CasaOS Nextcloud tutorial later received a Connection refused report from a user whose Nextcloud and MariaDB containers were not communicating.

De oude CasaOS-tutorial wijst architectonisch nog steeds in de juiste richting: Nextcloud moet voor normaal gebruik met meerdere gebruikers een echte database gebruiken. De aanvulling uit 2024 heeft de foutmelding ‘Connection refused’ echter nooit opgelost. De gebruiker had Nextcloud en MariaDB op een bridgenetwerk geplaatst, maar de containers konden nog steeds geen verbinding maken.

De veiligere huidige aanpak is om beide services in één Docker Compose-project of op één gedeeld, door de gebruiker gedefinieerd netwerk te draaien en Nextcloud naar de servicenaam van MariaDB te laten verwijzen, niet naar een container-IP-adres dat kan veranderen.

Wat de brondiscussie daadwerkelijk bevestigde

Het oorspronkelijke bericht uit 2023 verwees naar een tutorial. In 2024 meldde een andere gebruiker SQLSTATE[HY000] [2002] Connection refused tijdens het instellen van het Nextcloud-beheerdersaccount en vermoedde diegene dat de containers niet met elkaar konden communiceren. Geen enkel later antwoord in de discussie bevestigde een oplossing.

Daarom moet ‘beide op bridge zetten’ niet als een complete oplossing worden gepresenteerd.

Gebruik een gedeeld Compose-netwerk en een servicenaam

Het huidige Nextcloud MariaDB Compose-voorbeeld gebruikt een MariaDB-service met de naam db en stelt MYSQL_HOST=db in voor de Nextcloud-container. De interne DNS van Docker vertaalt de database vervolgens via de servicenaam.

Dit is duurzamer dan het invoeren van een tijdelijk 172.x.x.x-containeradres.

Stem de databasegegevens aan beide kanten op elkaar af

Nextcloud heeft dezelfde databasenaam, gebruiker en hetzelfde wachtwoord nodig als MariaDB aanmaakt. De huidige Nextcloud-databasehandleiding beveelt MariaDB aan voor productieachtige implementaties en documenteert de vereiste databasewaarden.

Als de hostnaam wel wordt gevonden maar de authenticatie mislukt, vergelijk dan de MariaDB-omgevingsvariabelen, de Nextcloud-waarden en de databaselogboeken voordat je de stack opnieuw aanmaakt.

Bewaar zowel de database als de Nextcloud-gegevens permanent

Bewaar de MariaDB-status niet uitsluitend in de containerlaag. Maak /var/lib/mysql en de Nextcloud-toepassings- en gegevenspaden die door de exacte image worden gedefinieerd permanent. Maak een back-up van de database samen met de Nextcloud-configuratie en gebruikersgegevens.

De Nextcloud-implementatiehandleiding helpt bij het scheiden van database- en applicatieopslag van grote hoeveelheden gebruikersbestanden.

Conclusie

De vervolgvraag op het forum over ‘Connection refused’ bleef onopgelost. Gebruik voor een huidige CasaOS- of ZimaOS-implementatie één Compose-stack of één gedeeld Docker-netwerk, verbind Nextcloud met MariaDB via de servicenaam, houd de inloggegevens consistent en sla zowel de applicatie- als de databasem opslag permanent op.