digikam-logo.png

Foto-Datenbank

Anleitung: Digikam mit MySQL zusammen nutzen

07.09.2010
Mit der vor einiger Zeit erschienen Version 1.3 bietet Digikam nun auch die Möglichkeit eine vollwertige relationale MySQL-Datenbank zu nutzen. Die Funktion ist zwar noch nicht komplett ausgereift, bietet aber ein erhebliches Potential.

Fototools an eine Datenbank anzubinden sind keine Neuheit. Der große Vorteil von Digikam [1] & MySQL gegenüber webbasierten Anwendungen wie Gallery [2] oder Pic2base [3] besteht darin, dass die Einrichtung einer lokalen MySQL-Datenbank und der Aufbau einer Verbindung mit Digikam mit wenig bis gar keinen Kenntnissen um und über MySQL und einen Webserver zu bewerkstelligen ist.

Testsystem für die folgende Ausarbeitung ist ein Mandriva 2010.1. Ich würde mich freuen, wenn der eine oder andere an Hand dieser Ausführungen das mal auf einem anderen Basis-System testen würde und mir seine Erfahrungen dann zuarbeitet. Vielleicht kann man dann ja auch noch mehr daraus machen und auf diese Art etwas an die Digikam-Community zurückgeben.

MySQL installieren

Die relationale Datenbank MySQL ist Bestandteil aller üblichen Linux-Distributionen und kann über die jeweilige Paketverwaltung installiert werde. Die meisten Distributionen bieten dafür ein oder mehrere sogenannte Meta-Pakete an (mysql oder mysql-server, mysql-client), welche fast alles an benötigten Abhängigkeiten nach sich ziehen. In meiner Mandriva-Installation musste ich lediglich die Qt4-Bindigs von Hand nachinstallieren. Das entsprechende Paket heißt unter Mandriva qt4-database-plugin-mysql und ist notwendig, damit in Qt geschriebene Anwendungen mit MySQL kommunizieren können. OpenSuse- und Ubuntu-Nutzer installieren libqt4-sql-mysql. Fehlt das Paket, dann zeigt Digikam beim Start eine Fehlermeldung an.

Damit MySQL funktioniert, muss der Server gestartet werde. In Mandriva macht man das im Kontrollzentrum über System | Ein- oder Ausschalten von Systemdiensten. Unter OpenSuse erfolgt das in ähnlicher Weise über den Runlevel-Editor in YaST. Auf jeder Distribution funktionieren sollte der als Administrator ausgeführte Befehl

/etc/init.d/mysqld start

MySQL-Root einrichten

Besitzer eines Rechners mit Debian oder dessen Verwandten wie zum Beispiel alle Ubuntu-Derivate können diesen Abschnitt überspringen – diese Distributionen setzen das Passwort für den Datenbankbenutzer "root" bereits bei der Installation der Pakete eingerichtet.

Unter den meisten Distributionen arbeitet der MySQL-Server nach dem Start ohne Root-Passwort und es gibt zudem einen anonymen Account. Das hat Vor- und Nachteile, ist aber nicht unbedingt sicher. Es empfiehlt sich deshalb, für den den MySQL-Root-Account ein Passwort zu setzen. Diesen Benutzer darf man auf keinen Fall mit dem Systemadministrator root in einen Topf werfen. Das sind zwei völlig verschieden Dinge.

Es gibt für MySQL eine Reihe von Hilfsmitteln, die auch mit graphischen Oberflächen arbeiten – das praktischste und schnellste Werkzeug ist aber immer noch die Konsole, und darin die MySQL-Shell. Also einfach ein Terminalfenster öffnen und hier den Befehl

mysql -u root

eingeben und mit der Enter-Taste bestätigen. Das öffnet die besagte MySQL-Shell, in der man nun weitere Anweisungen übergeben kann (Abbildung 1).

Abbildung 1: Nach dem Login in den MySQL-Datenbankserver ändert sich der Prompt zu mysql >.

Die Anweisung zum setzen des Passwortes für den Datenbank-Benutzers root lautet im Beispiel

set password for root@localhost = password('MySQL-root_Password');

Wobei das Passwort MySQL-root_Password natürlich von mir ein willkürlich gewählter Begriff ist und so mit Sicherheit von mir nicht verwendet wird (Abbildung 2). Also selber was ausdenken! Und dabei die üblichen Regeln für die Passwortvergabe beachten.

Abbildung 2: Zur Sicherheit sollte man für den MySQL-Admin ein Passwort setzen.

Auch hier sind übrigens nur im deutschen übliche Sonderzeichen oder Umlaute eher kontraproduktiv. Diese Eingabe mit [Enter] bestätigen und im Anschluss MySQL anweisen, die Änderungen zu übernehmen. Das funktioniert über den MySQL-Befehl FLUSH PRIVILEGES; (Abbildung 3).

Abbildung 3: Über den Befehl flush privileges; wendet MySQL die neuen Rechte an.

Bei allen MySQL-Befehlen darauf achten, dass diese Befehle für die Weitergabe (und vor der Bestätigung über die [Enter]-Taste) mit einem Semikolon (;) geschlossen werden müssen. Hat man das mal vergessen, dann kann man das in der nächsten Eingabezeile nachholen.

Damit ist das Passwort für den MySQL-Administrator gesetzt und man kann die MySQL-Shell mit dem Befehl quit; verlassen.

Abbildung 4: Über den Befehl quit; verlässt man den lokalen MySQL-Server.

Ich habe mir an dieser Stelle angewöhnt, MySQL über den Befehl

/etc/init.d/mysqld restart

neu zu starten. Wirklich notwendig sollte das aber nicht sein!

Alternativ kann man das Passwort auch über das Tool mysqladmin setzen:

sudo /usr/bin/mysqladmin -u root password 'geheimespasswort''

LinuxCommunity kaufen

Einzelne Ausgabe
 

Ähnliche Artikel

Kommentare
Fehler bei openSUSE 12.1
Rene (unangemeldet), Montag, 28. November 2011 11:00:40
Ein/Ausklappen

Hi,

habe es nach dieser Beschreibung mit openSUSE 12.1 eingerichtet. Lief aller sehr gut. Nu beim starten von digikam bekomme ich folgende Fehlermeldung:

Sie besitzen nicht die nötigen Rechte für die Datenbank.
Sie besitzen fplgende Rechte nicht:
CREATE TRIGGER
Überprüfen Sie die Rechte Ihrer Datenbank und starten Sie digiKam neu.

Was muss ich in der Datenbank hinzufügen?

Gruß
Rene



Bewertung: 100 Punkte bei 6 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Fehler bei openSUSE 12.1
anonym (unangemeldet), Donnerstag, 12. April 2012 21:50:05
Ein/Ausklappen

Wurde die Frage jetzt beantwortet und ich habe es nur nicht mitbekommen? Ich habe genau das gleiche Problem und komme nicht weiter...

Gruß an alle und danke für die hilfreichen Tipps!


Bewertung: 97 Punkte bei 6 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Digikam 1.8 und externem NAS-Server
Pierre (unangemeldet), Montag, 07. Februar 2011 15:35:31
Ein/Ausklappen

Auch von mir ein herzliches Dankeschön für die gute Anleitung.
Ich habe Digikam in der Version 1.8 unter SABAYON-Linux laufen.
Die MYSQL-Datenbank läuft extern auf einer kleinen Buffalo Linkstation.
Digikam kann dabei sehr gut mit der externen Datenbank umgehen. Man muss dazu jedoch die Datenbank in MYSQL für den jeweiligen Rechner freigeben. Das erreicht man, wenn man im Befehl "> GRANT ALL ON digikam .* TO digikam_user@'localhost' IDENTIFIED BY 'meinpasswort';" statt "localhost" die IP des Client-Rechners einträgt oder mit IP/MASK einen ganzen IP-Bereich freigibt.

Viele Grüße

Pierre


Bewertung: 130 Punkte bei 6 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Kubuntu 10.4 und Digikam 1.5
webmarwell (unangemeldet), Montag, 15. November 2010 11:27:46
Ein/Ausklappen

Unter Kubuntu 10.4 mit Digikam 1.5 und MySQL bin ich wie hier beschrieben vorgegangen: Keine Schwierigkeiten, auch nicht beim Import der alten sqlite Datenbank per "Datenbank-Migration"s-tool. Danke für die Anleitung!


Bewertung: 108 Punkte bei 5 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Danke und Fehler :)
Steve` (unangemeldet), Sonntag, 19. September 2010 06:44:36
Ein/Ausklappen

Moin,
danke zunächst einmal für die Anleitung. Beim entscheidenden Einrichten der mysql-Datenbank hat sich jedoch ein Buchstabendreher eingeschlichen:

> GRANT ALL ON digikam .* TO digikam_user@loclahost IDENTIFIED BY 'meinpasswort';

Hier müsste es besser 'localhost' heissen, sonst klappt nach Einrichtung die Verbindung zur Datenbank nicht.

Viele Grüsse ...
Steve`


Bewertung: 168 Punkte bei 10 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Danke
Mahmud A. (unangemeldet), Mittwoch, 08. September 2010 15:29:15
Ein/Ausklappen

Danke Heinz-Stefan! Nach einer solchen Anleitung habe ich schon öfter gesucht und nichts gefunden!
Mahmud


Bewertung: 136 Punkte bei 11 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...