L’ancien tutoriel CasaOS indique toujours la bonne direction sur le plan architectural : Nextcloud devrait utiliser une véritable base de données pour une utilisation normale par plusieurs utilisateurs, mais le suivi de 2024 n’a jamais résolu son erreur « Connection refused ». L’utilisateur avait placé Nextcloud et MariaDB sur un réseau bridge, mais les conteneurs ne parvenaient toujours pas à communiquer.
La méthode actuelle la plus sûre consiste à exécuter les deux services dans un même projet Docker Compose ou sur un même réseau défini par l’utilisateur, et à indiquer à Nextcloud le nom du service MariaDB plutôt qu’une adresse IP de conteneur susceptible de changer.
Ce que le fil de discussion a réellement confirmé
La publication originale de 2023 renvoyait vers un tutoriel. En 2024, un autre utilisateur a signalé l’erreur SQLSTATE[HY000] [2002] Connection refused lors de la configuration du compte administrateur Nextcloud et soupçonnait que les conteneurs ne communiquaient pas entre eux. Aucune réponse ultérieure du fil n’a confirmé de solution.
Cela signifie que « placer les deux conteneurs sur bridge » ne doit pas être présenté comme une solution complète.
Utiliser un réseau Compose partagé et le nom du service
L’exemple Compose Nextcloud MariaDB actuel utilise un service MariaDB nommé db et définit MYSQL_HOST=db pour le conteneur Nextcloud. Le DNS interne de Docker résout alors la base de données à partir du nom du service.
Cette méthode est plus fiable que la saisie d’une adresse temporaire de conteneur en 172.x.x.x.
Faire correspondre les identifiants de la base de données des deux côtés
Nextcloud doit utiliser le même nom de base de données, le même utilisateur et le même mot de passe que ceux créés par MariaDB. Le guide Nextcloud sur les bases de données recommande MariaDB pour les déploiements de type production et documente les valeurs de base de données requises.
Si le nom d’hôte est résolu mais que l’authentification échoue, comparez les variables d’environnement de MariaDB, les valeurs de Nextcloud et les journaux de la base de données avant de recréer la pile.
Conserver les données de la base et de Nextcloud
Ne stockez pas l’état de MariaDB uniquement dans la couche du conteneur. Conservez /var/lib/mysql ainsi que les chemins d’application et de données de Nextcloud définis par l’image exacte que vous déployez. Sauvegardez la base de données en même temps que la configuration et les données utilisateur de Nextcloud.
Le guide de déploiement Nextcloud aide à séparer le stockage de la base de données et de l’application des fichiers utilisateur volumineux.
En résumé
Le suivi du forum concernant l’erreur « Connection refused » est resté sans solution. Pour un déploiement actuel sur CasaOS ou ZimaOS, utilisez une seule pile Compose ou un seul réseau Docker partagé, connectez Nextcloud à MariaDB via le nom du service, gardez des identifiants cohérents et conservez le stockage de l’application et de la base de données.
