Pulpit plazmy korzysta z akonadi, które w domyślnej konfiguracji używa własnej instancji mysql/mariadb. Amarok przechowuje informacje o naszej bibliotece (notowania, teksty, oceny) również w bazie mysql. W tym celu korzysta również z własnej instancji. DigiKam domyślnie przechowuje informacji o kolekcji obrazów w bazie sqlite. Przy większych kolekcjach, może okazać się, że wydajność sqlite jest niewystarczająca. Nic nie stoi na przeszkodzie, aby wszystkie bazy przenieść do systemowej instancji mariadb. Dzięki temu unikniemy dublowania instancji baz dla akonadi i amaroka oraz przyspieszymy działanie digiKama.
I krótka legenda dla kodów użytych w tym wpisie.Kody zaczynające się od:
- # - należy wykonać jako root
- $ - należy wykonać jako zwykły użytkownik
- > - należy wykonać w konsoli mysql/mariadb
Zanim zaczniemy migrować bazy, należy zainstalować serwer mysql/mariadb i uruchomić go:
Akonadi
Upewniamy się, że akonadi działa:
Tworzymy zrzut aktualnej bazy akonadi za pomocą:
Zatrzymujemy serwer akonadi:
Zmieniamy konfigurację bazy danych akonadi, tak aby korzystała z zewnętrznego serwera mysql. Możemy edytować plik ~/.config/akonadi/akonadiserverrc
by jego zawartość wyglądała następująco:
[%General]
Driver=QMYSQL
SizeThreshold=4096
ExternalPayload=false
[QMYSQL]
Name=akonadi
Host=localhost
Options=
ServerPath=/usr/sbin/mysqld
StartServer=false
User=akonadi
Password=akonadi
[Debug]
Tracer=null
Lub możemy uruchomić:
Odznaczamy ‘Używaj wewnętrznego serwera MySQL’ i uzupełniamy dane jak na rysunku poniżej.
Następnie konieczne jest dodanie bazy danych i użytkownika.
Następnie należy przywrócić nasz zrzut bazy akonadi za pomocą:
Teraz pozostało nam już tylko uruchomić serwer akonadi za pomocą:
Jeśli spotkamy się z błędem:
Sql error: Table 'akonadi.SchemaVersionTable' doesn't exist QMYSQL: Unable to execute query
należy zmienić nazwy table naszej bazy na format CamelCase.
Od teraz akonadi będzie korzystało z systemowej instancji mysql/mariadb. Możliwe są dalsze optymalizacje bazy danych, adekwatne do konfiguracji używanej przez dedykowaną instancję bazy.
Amarok
Zatrzymujemy serwer mysql/mariadb:
Uruchamiamy serwer tylko z bazą amaroka:
Teraz pozostaje utworzyć zrzut bazy amaroka:
Po wykonaniu zrzuty możemy już zatrzymać serwer z bazą amarok i uruchomić serwer z konfiguracją globalną.
Następnie konieczne jest utworzenie bazy danych, do której zaimportujemy dane z zrzutu. Tworzymy bazę i użytkownika:
Importujemy zrzut do nowej bazy:
Teraz pozostaje tylko skonfigurować amaroka, aby korzystał z zewnętrznej bazy danych. Dane muszą być oczywiście takie jakich użyliśmy przed chwilą.
digiKam
Zaczniemy od utworzenia 2 nowych baz dla digiKama i użytkownika dla tych baz.
Następnie korzystamy z wbudowanego w digiKam narzędzia do migracji bazy danych. W tym celu uruchamiamy digiKam i z menu Ustawienienia
wybieramy Migracja bazy danych
. W lewej części okna wybieramy sqlite i podajemy ścieżkę gdzie są aktualnie bazy przechowywane. Domyślnie jest to ~/Obrazy
. W prawej części okna uzupełniamy dane niezbędne do połączenia z bazą mysql/mariadb.
Pozostaje sprawdzić połączenie i zmigrować naszą bazę sqlite do mysql/mariadb przez naciśnięcie przycisku Migruj ->
.
Czas migracji zależny jest od wielkości naszej kolekcji oraz wydajności naszego sprzętu, zwłaszcza dysku twardego i procesora. Po migracji ostatnim krokiem jest skonfigurowanie digiKama, aby korzystał z bazy mysql/mariadb. Z menu Ustawienia
wybieramy Konfiguracja: digiKam...
i w sekcji Baza danych
należy wybrać MySQL i uzupełnić dane połączenia.
UWAGA! Jeśli z komputera korzysta kilku użytkowników, należy dla każdego użytkownika utworzyć osobną bazę. Jako nazwę dla baz, można użyć schematu $USER_akonadi
, $USER_amarok
i $USER_digikam
.