Docker-Container können nicht auf lokale MariaDB zugreifen (Timeout)

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Ich bekomme es irgendwie nicht hin, dass Baikal auf die MariaDB der Synology zugreift. Bei der Einrichtung kommt immer ein Timeout.

Die MariaDB habe ich installiert, per PHPMyAdmin eine Datenbank mit dem Namen "baikal" und einen Benutzer namens "baikal" eingerichtet, der auf die Datenbank zugreifen darf. In den Baikal-Einstellungen wähle ich MySQL, trage als Server die IP der Synology und den Port 3306 sowie Benutzername, Passwort und Datenbank-Name ein.

Baikal steckt in einem Standard-Bridge-Network. Ich habe auch schon testweise ein neues Bridge-Network angelegt und Baikal da rein verfrachtet.

In den MariaDB-Einstellungen ist der Zugriff per TCP/IP zugelassen, die Firewall ist deaktiviert. Ich habe keine Ahnung, wo der Fehler noch liegen könnte.

Das gleiche passiert, wenn ich einen Nextcloud-Container aufsetze (Datenbank "nextclouddb" und Benutzer "nextclouduser" mit entsprechenden Rechten angelegt), der auf die MariaDB der Synology zugreifen soll. Auch da bekomme ich ein Timeout. So, als ob die MariaDB keinen Zugriff von Docker-Containern erlaubt.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Doch, das geht, ich hab da mehrere Docker-Container laufen, die auf MariaDB zugreifen.

Wie hast du den User angelegt? Du kannst ja beim User festlegen, von welchem Netz er zugreifen darf. Also enweder von jedem Netz, dann sollte da sowas wie username@% stehen. Oder von deinem Docker-Netz username@172.17.%? So als Beispiel...
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Danke. Hätte ich vielleicht erwähnen sollen. ;) Ich habe die User jeweils so angelegt, dass er von jedem Netz zugreifen darf. Also nicht als user@localhost, sondern als 'user'@'%'.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Hmmm, dann sollte das gehen...

Ich hab Nextcloud genauso laufen, Docker auf MariaDB. Was mir auffällt: Meine MariaDB läuft auf 3307 nicht 3306...
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Der Port 3306 war standardmäßig so eingestellt. Ich werde es nachher mal mit Port 3307 versuchen. Aber den Port gibt man ja bei Baikal mit an. Laufen bei dir Container auch als Bridge oder direkt auf dem Hostnetz?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Also ich nutze zwar Baikal nicht, aber bei Containern, die die MariaDB nutzen, habe ich diese bisher immer die DB als "Link" in dem zugreifenden Container mit angegeben. Nextcloud habe ich auch mal getestet, da habe ich das glaube ich genau so gemacht. Keine Ahnung, ob das notwendig ist
 
  • Like
Reaktionen: MattCB

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Die Frage wäre ja, was deine MariaDB sagt:
mariadb.PNG

Und ich hab' Firefox Syncstorage sowie Nextcloud über Bridge laufen.

Bei Nextcloud z.B. gibst du das in der Konfigurations-Seite bei Erstaufruf des Containers an. Bei Firefox Syncstorage ist es eine Variable des Containers.
 
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Sieht bei mir bis auf den Port 3306 genauso aus. Bin gerade nicht vor Ort, teste das heute abend mal. Kann mir aber nicht vorstellen, dass eine Änderung des Ports was bewirkt.

@plang.pl: Ich möchte aber gerne die MariaDB nutzen, die bereits auf der Synology läuft, also die als Paket installiert ist. Das was du meinst, wäre bei MariaDB als Docker-Container möglich. Aber es sollte ja auch möglich sein, die MariaDB nativ zu nutzen, wenn sie schon mal installiert ist. :cool:
 
  • Like
Reaktionen: Adama

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Das ist genau der Grund, warum ich das mache...

Nextcloud und Syncstorage hab' ich ja schon genannt, der dritte Container, der auf die MariaDB zugreift, ist Paperless_ngx. Also es geht... :)
 

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Na dann muss es ja bei mir auch gehen. Wenn ich mit PHPMyAdmin auf die Datenbank komme, sollte sie ja grundsätzlich funktionieren.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
PHPMyAdmin läuft auf der Syno selber, oder?

Ich nutze zum Verwalten vom Notebook aus HeidiSQL, also auch der externe Zugriff geht problemlos.
 
  • Like
Reaktionen: MattCB

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
  • Like
Reaktionen: MattCB

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
PHPMyAdmin läuft auf der Syno selber, oder?

Ich nutze zum Verwalten vom Notebook aus HeidiSQL, also auch der externe Zugriff geht problemlos.

Ja, deshalb komme ich wahrscheinlich problemlos drauf. Ich werde es mal von extern probieren. Nicht, dass doch noch irgendwo was blockiert.
 

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
So, Sherlock Holmes ermittelt weiter...

Ich habe HeidiSQL installiert. Dann über PHPMyAdmin einen User "baikaluser" und eine Datenbank "baikaldb" erzeugt. (siehe Screenshot 1)

Baikal-Container gestartet, das Setup über die Webseite gestartet. Ich bekomme wieder ein Timeout beim Zugriff auf MySQL (siehe Screenshot 2). Es werden auch keine Einträge in der Datenbank erzeugt.

Dann habe ich mich auf meinem Desktop-PC eine Verbindung mit HeidiSQL hergestellt, das hat wunderbar funktioniert. Ich habe testweise eine Tabelle mit 5 Spalten angelegt (siehe Screenshot 3). Diese Tabelle ist dann auch in PHPMyAdmin zu erkennen (Screenshot 4).

Ich werde mal eine VM mit Ubuntu-Server aufsetzen und dort Docker installieren und mal Baikal installieren. Wenn dort der Zugriff klappt, dann wird das Rätsel noch größer...

EDIT:

Dank Proxmox und LXC-Container ging das ganz Fix mit einer Docker-VM. :)

Über Baikal im Docker auf der VM funktioniert der Zugriff. Ich habe nochmal einen User baikal und eine Datenbank baikal angelegt. Und siehe da: Baikal legt ganz sauber die Datenbankeinträge an (siehe Screenshot 5).

Also wird irgendwie der Zugriff der Docker-Container auf der Synology auf die MariaDB blockiert.

EDIT2:

Ich habe das ganze über Portainer versucht. Auch dort kein Erfolg, auch nicht mit einem neu erstellen Netzwerk vom Typ "Bridge". Bleibt wohl nur noch, das ganze mit einem MACVLAN zu versuchen. Aber da es bei euch ja auch mit einem Bridge-Netzwerk läuft, ist hier irgendwas anderes faul...
 

Anhänge

  • Screenshot 1.png
    Screenshot 1.png
    76,4 KB · Aufrufe: 20
  • Screenshot 2.png
    Screenshot 2.png
    54,1 KB · Aufrufe: 18
  • Screenshot 3.png
    Screenshot 3.png
    172,9 KB · Aufrufe: 18
  • Screenshot 4.png
    Screenshot 4.png
    110,5 KB · Aufrufe: 15
  • Screenshot 5.png
    Screenshot 5.png
    316,7 KB · Aufrufe: 13
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Ähh, in Screenshot 2 benutzt du Port 3007? Ist das richtig?

Ansonsten kann ich nur wiederholen: Es geht... ;)

Kann Baikal denn überhaupt mit MariaDB arbeiten?
 
  • Like
Reaktionen: MattCB und plang.pl

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Ja, hatte es aber auch schon mit Port 3306 versucht. Und Port 3307 geht, wie der Zugriff per HeidiSQL und per Baikal-Docker aus der VM zeigt. Und ja, Baikal kann mit MariaDB, da Baikal von der testweise aufgesetzten VM aus sauber läuft. ;-)

Okay, hatte den Screenshot falsch. Ich nutze natürlich Port 3307. Hatte den Screenshot zu zeitig gemacht. Bei den ganzen Ports kommt man ja völlig durcheinander...
 
Zuletzt bearbeitet von einem Moderator:

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
Ja, so sollte es aussehen. Tut es aber nicht. Warum auch immer. Ein Baikal-Container von extern funktioniert, da werden die Tabellen sauber angelegt. Aber nur nicht vom Container direkt auf der Synology.

Ich lass das erstmal für heute. Vielleicht habe ich morgen die zündende Idee oder im Schlaf einen Gedankenblitz. :ROFLMAO:
 

MattCB

Benutzer
Mitglied seit
31. Jan 2012
Beiträge
382
Punkte für Reaktionen
71
Punkte
28
An den Rechten sollte es nicht liegen, sonst würde es mit dem Docker-Container, der auf der VM läuft, auch nicht funktionieren.
 

Anhänge

  • Rechte.png
    Rechte.png
    79,1 KB · Aufrufe: 13


 

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