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).
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.
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).
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.
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''



