Vejledninger/Delt database

From KDE UserBase Wiki
Revision as of 17:55, 16 September 2011 by Claus chr (talk | contribs) (Importing a new version from external source)

Delt database

Flere af KDE's skrivebordsprogrammer bruger en eller anden slags database. De mest populære er nok musikafspilleren Amarok, fotomanageren digiKam' og Amarok, som håndterer personlige informationer. For at forenkle installationen og begrænse programmernes afhængigheder udgives hvert af disse programmer med sin egen database, i de fleste tilfælde ved brug af SQLite. De mange særskilte databaser skaber unødvendige gentagelser og gør det vanskeligt at lave backup af dine data.

Databaseserver

Den eneste database, som understøttes af alle disse programmer er MySQL, så den vilvi bruge. Den er også meget let at konfigurere, enten på kommandolinjen eller med grafiske værktøjer.

Installation

Først skal vi installere serveren mysql. Linux-brugere vil nok foretrække at installere en pakke fra deres distribution; andre kan hente den fra MySQL's hjemmeside. Instruktioner om, hvordan man starter MySQL under maskinopstart er distributionsafhængig, men da MySQL er en populær pakke, så skulle de ikke være svære at finde. Under installationen vil du nok blive bedt om at angive en root-adgangskode. Vælg en sikker adgangskode og husk den; denne konto skal ikke bruges at skrivebordsprogrammerne, kun til databaseadministration.

Konfiguration

For konfigurationen af serveren vil vi antage, at din database ikke bruges over netværket, ikke indeholder følsomme data og at du stoler på dine programmer. Hvis du vil bruge databasen til Akonadi-data, så er det bedst, hvis du kopierer konfigurationsfilen fra Akonadis kildekodearkiv; den kan downloades herfra. Lav en kopi af din eksisterende /etc/mysql/my.cnf og erstat den så med den downloadede fil.

Warning

This file disables network access and user authentication. The latter means that any application from your computer can connect to it without a password. This makes configuration of programs easier, and is well-suited for the general desktop use case.


Creating the databases

The first thing we have to do once MySQL is installed and running is add a separate database for each program. I generally name them after the programs that use them. This can be done with either GUI administration tools, but since we only have to do it once it's probably faster to write a few commands:

$ mysql -u root -p

At the password prompt, type in the root password set when installing MySQL. Now we can start creating databases. For example, to create a database named 'amarok', type in this command:

mysql> create database amarok;

Amarok

Amarok requires very little configuration, but it doesn't provide a way to migrate your old database. Go to Settings -> Configure Amarok... and go to the Database tab. Fill in localhost as the server address, 3306 as the port, and amarok as the database name.

digiKam

Note

digiKam used to have a bug which prevented the same from working in versions prior to 2.0, so you will need a newer version of the program. In version 2.0 is still doesn't work perfectly: it pops up an error message at startup, but the tables are populated and the album data is stored correctly.

digiKam is somewhat special because it requires two databases: one for the images metadata, and one for thumbnails. Their names are not important, I chose to call them digikam and digikam_thumb:

mysql> create database digikam;
mysql> create database digikam_thumb;

In digiKam, the process is very similar to that of Amarok. The settings are located in Settings -> Configure digiKam... -> Database.

digiKam also comes with a handy database migration tool, available in Settings -> Database Migration. Fill in your previous database settings (you don't have to do anything if you haven't changed these options) on the left side and your new settings on the right side, then click Migrate.

Akonadi

First create a database for akonadi:

mysql -u root -p
create database akonadi;

Akonadi is not supposed to be a user-facing tool, so there is no configuration GUI for it. However, you can edit ~/.config/akonadi/akonadiserverrc to have these contents:

[%General]
Driver=QMYSQL

[QMYSQL]
Name=akonadi
Host=localhost
StartServer=false
Options=
ServerPath=/usr/bin/mysqld

Save the file, then log out and log in back again.