Nextcloud mag sich nicht mit MySQL verbinden

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
Hallo zusammen,

ich versuche gerade Nextcloud mit MariaDB als Datenbank per Docker ans Laufen zu bekommen. MariaDB läuft auf dem Host-Netzwerk, Nextcloud in einer Bridge (Port 8082 -> 80 gemapped). Datenbank und Nutzer in MySQL habe ich per Terminal im Docker angelegt.

Die Einrichtungsseite von Nextcloud erreiche ich. Bei der Datenbank wähle ich MySQL/MariaDB, Nutzer und Passwort passt. Zugreifen soll Nextcloud über die IP der Synology (Port 3306). Leider bekommt Nextcloud (bzw. der Container) keine Verbindung zur Datenbank, ich bekomme als Fehlermeldung

"Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection timed out"

Scheint also, als ob der Nextcloud-Container nicht auf MariaDB zugreifen kann. Ein Test mit "localhost" oder "localhost:3306" brachte keine Besserung. Die Firewall der Synology habe ich testweise deaktiviert, was keine Änderung bewirkt hat.

Die Einrichtung mache ich über die Docker-Anwendung von Synology, daran sollte es nicht liegen, denke ich.

Vielleicht kann mich jemand in die richtige Richtung schubsen? ;-)
 

Anhänge

  • nextcloud.png
    nextcloud.png
    126,9 KB · Aufrufe: 6

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.257
Punkte für Reaktionen
920
Punkte
174
Laut Screenshot hast du kein Userpasswort angegeben. Ansonsten wäre natürlich die Frage, ob du diesen überhaupt manuell per phpMyAdmin angelegt hast?!
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
Passwort habe ich auch über das Terminal des Containers angelegt. Passwort wurde natürlich eingegeben, hat sich nur nicht auf den Screenshot getraut. ;-)

phpMyAdmin dürfte ja nicht gehen, da die Datenbank im Container läuft? Ich hatte phpMyAdmin installiert, aber er hat auch keine MariaDB gefunden.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.476
Punkte für Reaktionen
359
Punkte
103
Wenn NC- und Datenbank-Container am Bridge-Netzwerk laufen, dann kann NC nicht auf die DB über localhost zugreifen. Localhost im Container ist nicht dasselbe Localhost wie vom Host oder von einem anderen Container.

Wenn man vom NC-Container direkt auf den DB-Container zugreifen will, kann man zwei Wege gehen:
1. am NC-Container einen Link zum DB-Container konfigurieren und dann den selbstdefinierten Alias für den DB-Container als Hostnames für die Verbindung nutzen. Das ist nur notwendig, weil das default Bridge-Netzwerk kein Service-Discovery kann.
2. ein neues Bridge-Netzwerk anlegen (ja, es muss ein zusätzliches sein!) und die beiden Container in das neue Netzwerk umziehen. Zusätzlich angelegte Netzwerke haben eingebautes DNS-basiertes Service-Discovery, so das man als Hostnamen dann den Namen des DB-Containers verwendet.

Beides kann man über die Syno Docker-UI machen. Der erste Weg ist veraltet und wird irgendwann aus Docker ausgebaut... bin gespannt wie sie es dann über die UI lösen.

Wenn man Docker Compose verwenden würde, dann würde immer Variante 2 greifen, nur das zusätzlich auch über den Service Namen aufgelöst werden kann.
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
Danke, muss ich mich mal reinfuchsen.

Könnte man das ganze auch mit macvlan versuchen zu lösen? Damit wären ja beide in einem Netzwerk, aber mit unterschiedlichen IPs. Ich hatte mal Pi-Hole und Unbound per macvlan in Betrieb, das hat wunderbar funktioniert. Ich musste allerdings einen Workaround machen, damit man aus dem Hostnetz mit den Container kommunizieren konnte.

Und kann man eigentlich die Container-Volumes (also die ausgelagerten Ordner) auf einen externe SSD (über einen USB-Port angebunden) legen oder mag das Docker nicht? Ich könnte mir vorstellen, dass man dadurch einen ordentlichen Geschwindigkeitsschub bekommt, da die Zugriffszeiten einer SSD schon geringer sind als bei drehenden Festplatten. Den Data-Ordner kann man ja auf der HDD liegen lassen.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.476
Punkte für Reaktionen
359
Punkte
103
Könnte man. Ich schaue mir externe Links nie an, da es im Kontext macvlan ist, kann ich mir vorstellen was da passiert: der Host bekommt ein eignens Macvlan-Client Interface spendiert und ist so Teil des macvlan Netzwerks. Wenn man von einem macvlan Container auf den Host zugreifen will, ist dessen IP dann auch, die die man dafür verwenden muss.

Die Syno kann über die UI nur Volume-Binds. Bei der Syno müssen die auf einem Share liegen. Ich würde dringend davon abraten die Volume-Binds auf ein USB-Laufwerk zu packen. Kann man schon machen, wird aber nerven, sobald die Verbindung weg ist und wieder hergestellt wird während ein Container läuft, der darauf zugreift. Der Container wird entweder durchdrehen, oder das Wiederverbinden nicht mitbekommen.
 
  • Like
Reaktionen: MattCB

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
728
Punkte für Reaktionen
138
Punkte
69
Läuft MariaDB auch als Container ? Dann würde ich den Port von zB 3310 auf 3306 mappen
Hab's immer so gemacht und es funktioniert ohne Probleme
Wichtig wäre noch, falls MariaDB als Container laufen soll, nicht die latest Version zu verwenden, sondern 10.5.x, weil es mit der latest Probleme gibt bzw. gab ? (keine Ahnung ob dies schon korrigiert wurde)
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
MariaDB läuft auch im Container. Ich kann das nochmal so testen, komme aber die nächsten Tage nicht dazu. Ist ja auch nur mal wieder Spielerei, da ich als Cloud ja den Synology Drive Server nutze und auch den Kalender und die Kontakte über die Synology eingerichtet habe. Aber man ist ja Spielkind und testet ganz gerne mal was aus.

Ich hatte Nextcloud auch schon nativ (über den Webserver) zu laufen, aber da war der Upload von größeren Dateien sehr langsam. Es fing schnell an und brach dann nach wenigen Sekunden rapide ein. Eventuell war ein Cache zu klein, ich hatte nur APCU als Cache aktiviert. Ansonsten lief die Nextcloud auf dem NAS recht ordentlich.

Danke erstmal an alle Beteiligten für die Gedanken, die ihr euch gemacht habt. :)
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Aber man ist ja Spielkind und testet ganz gerne mal was aus
Spielereien sind super :)(y)
Gerade dann wenn man nach Alternativen sucht.
Ich selbst nutze Nextcloud nativ inkl APCu aber ich habe weniger den Anwendungsfall Dateien über das Webinterface hochzuladen.
Bei mir läuft Nextcloud im allgemeinen sehr stabil und zuverlässig. Nutze sie schon sehr lange da Synology zu seiner Zeit keine vernünftige Card/Cal-DAV Anbindung hatte.
Deshalb habe ich die Synology DAV Lösung als Spielwiese am laufen :D und Nextcloud ist und bleibt nach wie vor das produktive System.
 
  • Like
Reaktionen: MattCB und stulpinger

rabbithole

Benutzer
Mitglied seit
02. Feb 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
dann den selbstdefinierten Alias für den DB-Container als Hostnames für die Verbindung nutzen. Das ist nur notwendig, weil das default Bridge-Netzwerk kein Service-Discovery kann
Ich steh grad vor derselben Hürde.
In meinem NC-Container habe ich einen Link definiert (mariadb:mariadb)
Wie trage ich den nun in der NC-Einrichtungsmaske ins Feld DB-Host ein?
 

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
Dort sollte "mariadb" stehen, wenn der Container so heißt.
 

rabbithole

Benutzer
Mitglied seit
02. Feb 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Danke.

Damit startet nun zumindest schon mal der Installer.

Leider hab ich wohl noch irgendwo anders einen Fehler drin, denn nach ungefähr einer Minute erscheint dann eine Fehlermeldung daß "die gewünschte Seite nicht gefunden wurde". 🙈
 
Zuletzt bearbeitet von einem Moderator:

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
369
Punkte für Reaktionen
65
Punkte
28
Dann einfach nochmal die Cloud aufrufen. Es gibt manchmal einen Fehler, dass nach Arbeiten des Installers auf eine falsche Seite geleitet wird. So war es bei mir zumindestens oft.
 

rabbithole

Benutzer
Mitglied seit
02. Feb 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Danke. Ja, Du hast recht. Trotzdem hat das dann wieder wegen irgendwas anderem nicht funktioniert.

Schlußendlich hab ich das Ganze jetzt erstmal mit SQLite eingerichtet.
Da ich NC eigentlich primär haben wollte um mit floccus meine Bookmarks zu synchronisieren, sollte das reichen. Geht aber auch wieder nicht so wie erwartet, es ist eine never ending story.... Frustrierend.
 
Zuletzt bearbeitet von einem Moderator:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat