Digikam mit Datenbank auf Server

  • Dank der Unterstützung von Harry14 habe ich DigiKam erfolgreich im Container installiert. Performance ist nicht überwältigend, aber eigentlich hatte ich vor, das nur sozusagen als Backgroundserver zu nutzen, der eigentliche Zugriff soll von Windows erfolgen. Genauer gesagt habe ich das nun so installiert: DigiKam läuft im Server, aufgerufen über den im Browser aufgerufenen Container und darin im Terminal, läuft dort im eigenen Fenster - zunächst. Parallel wird DigiKam ab und an in einem (virtuellen) Windows 10 gestartet. Und nun kommt der Knackpunkt: Beide sollen - gleichzeitig - auf die gleiche Datenbank auf dem Server zugreifen.


    Nun die großen Fragen:

    - Kann das funktionieren?

    - Schließe ich das Browserfenster mit Container wärend dort DigiKam geöffnet ist, was passiert dann mir dieser Version von DigiKam? Es läuft weiter ein Prozess "digikam", das kann ich über das Terminal abfragen. Aber läuft da auch beispielsweise die Suche nach Dublikaten weiter?

  • Wenn ich dich richtig verstanden habe, dann möchtest du digikam auf einem separaten Rechner laufen lassen, aber die Datenbank auf dem Server (NAS) nutzen.

    Das ist primär ein digikam Thema.

    Dazu müsstest du die Datenbank auf MySQL umstellen (Umwandlungstool innerhalb digikam), weil die standardmäßige sqlite DB nicht auf einem Netzlaufwerken liegen darf. Ich hatte dies schon so am Laufen, allerdings war es für mich zu langsam, weil digikam laufend Datenbankzugriffe benötigt und mein Heimnetz nicht sehr schnell ist. Das solltest du in deiner Umgebung mal testen, würde mich interessieren. digikam benötigt, so steht es auch in den Support Seiten, eine schnelle Verbindung zwischen DB und dem eigentlichen Programm, also am besten auf einem Rechner.

    Einen gleichzeitigen Zugriff habe ich selbst noch nicht getestet, sollte aber mit MySQL möglich sein.

    Wenn du das Browserfenster auf den Container schließt, dann läuft digikam im Hintergrund weiter. Ist so, wie wenn du den Monitor ausschaltest.

  • Werde das mal versuchen. MariaDB habe ich seit langm bereits kontinuierlich im Einsatz, allerdings nur mit rein lokalem Zugriff auf dem NAS. Den Zugriff über das Netz habe ich noch nicht geschafft. Habe zwar wie gefordert den User digikam und die Datenbank angelegt und mit kompletten Rechten versehen, aber beim Versuch, die Verbindung aufzubauen bekomme ich

    Code
    Der Datenbankverbindungstest ist nicht erfolgreich gewesen.
    
    Der Fehler lautet: Can't connect to MySQL server on 'meine.NAS.IP' (10061) QMYSQL: Unable to connect

    Das mit den Datenbanken war für mich schon immer eine Herausforderung nach dem Motto: Wenn's den mal läuft: Finger weg!

  • Ist bei mir schon ne Weile her. Wenn ich mich richtig erinnere, braucht digikam kompletten Zugriff auf die Datenbank. Also die höchste Rechtestufe über phpmyadmin vergeben

  • Das habe ich gemacht. Aber mein Problem liegt tiefer, glaube ich. Ich habe das gefühl, irgendwie muss ich am NAS generell den Zugriff von extern auf MySQL erst einrichten.

    Ich hatte vor Jahren - wohl noch mit dem Vorgänger-NAS - MySQL eingerichtet. Irgendwann hat - soweit ich mich erinnere - QNAP auf MariaDB umgestellt. Ich glaube, da hat sich auch etwas mit dem Zugriff geändert. ABer wie gesagt, das ist auch bei mir einige Jahre her und natürlich kann ich das im Nachhinein nicht mehr sagen. Ich recherchiere mal noch etwas im WWW und poste, wenn ich es geschafft habe.


    EDIT:

    Manchmal kann man sich wirklich nur blöd anstellen: Ganz einfach am NAS unter ser Systemsteuerung bei den Anwendungen für den SQL-Server TCP/IP aktivieren und man gucke und staune: Es geht der Zugriff....

    Einmal editiert, zuletzt von duke-f ()

  • dr_mike

    Hat den Titel des Themas von „DigiKam im Container“ zu „Digikam mit Datenbank auf Server“ geändert.
  • Jetzt sind wir glaube ich richtig aufgehoben in einem neuen Thread.

    Hat jetzt nämlich nichts mehr mit Container station zu tun:

    Mir ist noch eingefallen, dass du noch über die „Album-Root“ Thematik stolpern könntest.

    Kurz gefasst: digikam speichert die „Album-Root“, d.h. den obersten Pfad zu deinen Bildern, in der Datenbank. Wenn du nun von 2 Rechnern auf dieselbe DB zugreifst, muss dieser gleich sein.

    Bei 2 Linux Rechnern ist das relativ einfach zu realisieren, z.B. /mnt/Bilder. Bei NAS ( Linux) und Windows nicht ohne weiteres. Es gibt dazu workarounds im digikam Forum, z.B. Zwei Pfade in die DB einzutragen, ist aber ein pfriemeln in der DB. Datenbank auf alle Fälle vorher sichern.

  • Okay, sowas habe ich schon befürchtet.


    Die Datenbank sichern ist bestimmt wichtig. Ich habe aber jetzt für meinen neuen Ansatz - die Datenbank in Serverversion - bewusst den Weg gewählt, die alten Datenbanken zu löschen und sie komplett neu anlegen zu lassen. Dies allerdings zunächst vom virtuellen Windows auf dem NAS aus. Containerversion käme als nächstes. Da habe ich die Datenbank zwar auch erfolgreich angegeben, aber nach dem Start der Initialisierung von Windows aus digikam nicht gestartet, um nichts durcheinander zu bringen. Ist ja letzt endlich alles ein NAS, das sich sonst selber im Wege steht.

    Zu Performance kann ich jetzt nicht wirklich was sagen. Die Netzwerkgeschwindigkeit springt im virtuellen Windows-Rechner zwischen 100 und 250 Mb/s. Kann ich jetzt nicht bewerten, eigentlich ist es ja nur ein virtuelles Netz, da es intern auf dem NAS läuft und da muss ich zugeben, dass ich nach wie vor die dahintersteckende Philosophie (noch) nicht verstehe. Wäre nett, aber steht nicht ganz oben auf meiner virtuellen todo-Liste.

    Es läuft jetzt aber schon einige Stunden die Gesichtserkennung und die Erstellung der Fingerabdrücke. Ich rechne - habe leider nicht aufgepasst, wann ich was gestartet hatte - das wird noch Stunden bis Tage dauern.


    EDIT: Spontaner Gedanke zum "Album-Root-Problem": Ich kann doch unterschiedliche Ordner angeben: Lokal, Wechselmedien und Netzwerk. Bei Netzwerk wird (zumindest bei Windows) aber nicht wirklich der Netzwerkpfad gewählt, sonder ein als Laufwerk eingebundener Netzwerkpfad. Vielleicht ist da was möglich.

    Einmal editiert, zuletzt von duke-f ()

  • Habe ich noch nicht ausprobiert. Ein Versuch wäre es aber wert.

    Alternativ gibt es im digikam Forum einen Thread, wie man 2 Pfade in der DB-Variable album-root speichert. Geht igendwie mit "&" und in der besonderen html-Notation. Ich kann versuchen, den Thread nochmal zu finden.

  • Wär nett. Hier habe ich was, hab's aber noch nicht durch:


    https://bugs.kde.org/show_bug.cgi?id=261277


    Scheint mir dann aber so, dass letztendlich die Daten doppelt in die Datenbank kommen. Werde ich ja sehen, das wäre dann ja nicht mehr in meinem Sinne: Die Verwaltung der Datenbank läuft im wesentlichen im Hintergrund im Container,


    EDIT:

    Na toll, gerade jetzt kommt die Beta von Version 6....


    EDIT 2:

    Okay, hat sich bestätigt. Ich kann also ganz einfach in den Einstellungen in DigiKam mehrere Sammlungen in Netzwerkfreigaben machen. Haben un unter dem Namen Foto auf dem Windows-Rechner das Laufwerk Z:\Fotos angegeben und anschließend auf dem Container zusätzlich /mnt/Bilder eingefügt. Beide Pfade stehen jetzt auch in der Datenbank unter AlbumRoots untereinander als zwei Einträge. Beide Verknüpfungen zeigen auch auf das gleicher Verzeichnis auf dem NAS Aber wie befürchtet initialisiert nun jeder Rechner für sich die identische Sammlung durch und es treten in der Datenbank alle Images, Pfade usw. zweifach auf.

    Also das war's nicht....


    Der Versuch nach dem zitierten Post läuft noch.


    EDIT 3:

    Scheint so zu funktionieren. Hier nochmal die Wiederholung aus dem oben genannten Post mit meinen Verzeichnissen:

    Code
    networkshareid:?mountpath=Z:/Foto&mountpath=/mnt/Bilder

    Das habe ich so manuell in die MySQL-Datenbank ergäntz unter AlbumRoots. Vielleicht logisch, trotzdem nochmal genauer:

    Z:/Foto ist das auf dem Windowsrechner verknüpfte Netzlaufwerk auf dem NAS mit den Bildern, /mnt/Bilder entsprechend das gleiche Verzeichnis auf dem Container.

    Ein gerade aufgenommenes Foto taucht jetzt einmal auf sowohl auf dem Windows-Rechner, dem Container (jeweils in digiKam) und ist auch nur einmal in der Datenbank.

    5 Mal editiert, zuletzt von duke-f ()

  • Was bisher nicht funktioniert:


    - Beim Start wechselweise von Windows oder Linux/Container gibt es eine Meldung hinsichtlich geänderter "Region" und damit des Zeichensatzes utf8 bzw system. Das muss man ignorieren (weiter mit "yes"), hat offensichtlich keinen Einfluss auf die Funktionsfähigkeit.

    - Die dlna-Freigabe funktioniert vom Container aus nicht. Liegt wohl am anderen Subnetz. Ich habe für die Container die Standardeinstellungen gelassen (10.0.5.x bzw. 10.0.3.x - interessanterweise wird das allerdings für lxc und docker vertauscht gegenüber dem wie in den Präferenzen angegeben). Ins Heimnetzt binde ich das über die Routen in der Fritzbox ein, was wohl nicht dlna betrifft.

  • Etwas am Rande, was mir aber grundsätzlich nicht gefällt: DdigiKam hat mir offensichtlich alle Bilder im überwachten Verzeichnis direkt ungefragt manipuliert: Alle haben jetzt ans Datum für die letzte Änderung das Datum des Einrichtens von digiKam. Weiter: Probeweise habe ich in digiKam ein Bild mit Geodaten versehen. Erwartungsgemäß wird das in die Datenbank eingetragen. Jedoch auch hier negativ: Dies wird auch ungefragt ins Bild selber eingetragen. Sicher gibt es eine Einstellung, das zu verhindern, aber in der Grundeinstellung sollte das nicht so sein, denke ich.


    Sicher, ist kein QNAP-Thema und gehört ins digiKam-Forum. Bin da aber (noch) nicht aktiv und denke, auch hier sollten User auf diesen Sachverhalt hingewiesen werden. Allerdings: Ich schließe einen Bedienfehler meinerseits nicht aus.