# [gelöst] mariadb - systemd - > kein digikam

## uhai

Hallo zusammen,

ganz überraschend hat sich gestern mein laufendes digikam (als ich eben mal unterwegs war) auf die Startseite von 7.2 "bewegt". Soll heißen, als ich zurück kam hatte ich den splash-screen der 7.2.0 mit den Neuerungen auf dem Schirm und nicht meine Bildauswahl, die ich begonnen hatte zu sichten. Ein "Zurück" ging nicht, keine Alben, Bilder etc.... der Datenbank-Connect war weg.

Ich habe den Rechner neugestartet und dabei festgestellt, dass systemd mariadb.service nicht mehr starten kann.... deshalb hat digikam keine Datenbankanbindung mehr.

Normalerweise läuft digikam auf meinem desktop, die Datenbank und meine Bilderverzeichnisse liegen auf der NAS und sind mit ntfs verbunden. Geändert habe ich nichts, außer meine Updates eingespielt (emerge -auDNtv world) - ohne Probleme. So sah die Konfiguration aus:

digikam 7.2.0-r1        auf dem Desktop

mariadb-10.5.10-r2   auf dem Desktop

mariadb-5.5.57         auf der NAS

Das sind die Fehlermeldungen von systemd:

```
systemctl status mariadb.service

× mariadb.service - MariaDB 10.5.10 database server

     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)

     Active: failed (Result: exit-code) since Mon 2021-11-01 14:39:54 CET; 13s ago

       Docs: man:mariadbd(8)

             https://mariadb.com/kb/en/library/systemd/

    Process: 351872 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)

    Process: 351873 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP>

    Process: 351926 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)

   Main PID: 351926 (code=exited, status=1/FAILURE)

     Status: "MariaDB server is down"

        CPU: 93ms

Nov 01 14:39:54 After8 systemd[1]: Starting MariaDB 10.5.10 database server...

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [Note] /usr/sbin/mariadbd (mysqld 10.5.10-MariaDB-log) starting as process 351926 ...

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [Warning] Can't create test file /var/lib/mysql/After8.lower-test

Nov 01 14:39:54 After8 mariadbd[351926]: [99B blob data]

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [ERROR] Aborting

Nov 01 14:39:54 After8 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE

Nov 01 14:39:54 After8 systemd[1]: mariadb.service: Failed with result 'exit-code'.

Nov 01 14:39:54 After8 systemd[1]: Failed to start MariaDB 10.5.10 database server.

```

und

```
journalctl -xeu mariadb.service

░░ An ExecStart= process belonging to unit mariadb.service has exited.

░░ 

░░ The process' exit code is 'exited' and its exit status is 1.

Nov 01 14:29:25 After8 systemd[1]: mariadb.service: Failed with result 'exit-code'.

░░ Subject: Unit failed

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ The unit mariadb.service has entered the 'failed' state with result 'exit-code'.

Nov 01 14:29:25 After8 systemd[1]: Failed to start MariaDB 10.5.10 database server.

░░ Subject: A start job for unit mariadb.service has failed

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ A start job for unit mariadb.service has finished with a failure.

░░ 

░░ The job identifier is 1279 and the job result is failed.

Nov 01 14:39:54 After8 systemd[1]: Starting MariaDB 10.5.10 database server...

░░ Subject: A start job for unit mariadb.service has begun execution

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ A start job for unit mariadb.service has begun execution.

░░ 

░░ The job identifier is 1533.

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [Note] /usr/sbin/mariadbd (mysqld 10.5.10-MariaDB-log) starting as process 351926 ...

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [Warning] Can't create test file /var/lib/mysql/After8.lower-test

Nov 01 14:39:54 After8 mariadbd[351926]: [99B blob data]

Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [ERROR] Aborting

Nov 01 14:39:54 After8 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE

░░ Subject: Unit process exited

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ An ExecStart= process belonging to unit mariadb.service has exited.

░░ 

░░ The process' exit code is 'exited' and its exit status is 1.

Nov 01 14:39:54 After8 systemd[1]: mariadb.service: Failed with result 'exit-code'.

░░ Subject: Unit failed

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ The unit mariadb.service has entered the 'failed' state with result 'exit-code'.

Nov 01 14:39:54 After8 systemd[1]: Failed to start MariaDB 10.5.10 database server.

░░ Subject: A start job for unit mariadb.service has failed

░░ Defined-By: systemd

░░ Support: https://gentoo.org/support/

░░ 

░░ A start job for unit mariadb.service has finished with a failure.

░░ 

░░ The job identifier is 1533 and the job result is failed.

```

Damit kann ich leider wieder gar nichts anfangen, außer dass ich verstehe mariadb läuft nicht, systemd hat also keine tReiber.... aber woran liegt das?

uhaiLast edited by uhai on Sat Nov 13, 2021 12:14 pm; edited 1 time in total

----------

## firefly

Da scheint es ein rechte problem zu geben:

 *Quote:*   

> Nov 01 14:39:54 After8 mariadbd[351926]: 2021-11-01 14:39:54 0 [Warning] Can't create test file /var/lib/mysql/After8.lower-test 

 

Das Verzeichnis /var/lib/mysql sollte dem user mysql und der gruppe mysql zugeordnet sein

----------

## mike155

Du könntest mit dieser Meldung anfangen:

```
Can't create test file /var/lib/mysql/After8.lower-test
```

Das deutet auf Rechte-Probleme hin.

Unter Google gibt es ein paar Ergebnisse zu

```
mariadb "Can't create test file /var/lib/mysql/After8.lower-test"
```

Das Problem hatten also auch schon andere. Vielleicht passt eine der dort gezeigten Lösungen auch in Deinem Fall?

EDIT: Firefly war schneller.  :Smile: 

----------

## uhai

Vielen Dank an beide,

das ist ein guter anfang:

Das Verzeichnis gibt es nicht, es ist ein Link:

```

 ls -ali /var/lib/

 923682 drwxr-xr-x 42 root     root     4096  2. Jul 17:35 .

 917505 drwxr-xr-x 12 root     root     4096 15. Sep 19:01 ..

 917773 lrwxrwxrwx  1 root     root       36  1. Mai 2017  mysql -> /run/media/uhai/System/var/lib/mysql

ls -ali /run/media/uhai/System/var/lib/mysql

ls: Zugriff auf '/run/media/uhai/System/var/lib/mysql' nicht möglich: Datei oder Verzeichnis nicht gefunden

```

Da das bis gestern Mittag noch funktioniert hatte, muss es das Verzeichnis doch gegeben haben?? Ich suche mich jetzt mal durch die Trefferliste zu diesem fehlenden Verzeichnis....

uhai

----------

## mike155

Das Verzeichnis "/run/..." ist schon mal komisch. Alles unter "/run" wird bei einem System-Neustart gelöscht. Selbst wenn es sich bei "/run/media" oder "/run/media/uhai/" um einen Mount-Point handeln sollte, müsstest Du dieses Verzeichnis nach jedem Neustart erst neu anlegen, bevor Du etwas mounten kannst. "/mnt/media" oder "/mnt/media/uhai/" wäre also besser.

----------

## uhai

Das ist der Mount Point für SD-Karten und andere austauschbare Datenträger... ist irgendwann vor einiger Zeit "plötzlich" dagewesen und seitdem geblieben. Funktioniert auch.... kam wohl damals mit irgendeinem update mit.

nur das var/lib/mysql dorthin verweist hat mich gewundert.... das ist mir bisher nicht aufgefallen.

uhai

----------

## firefly

systemd-mount (vis systemd mount unit files) mounted "devices" unter /run/media, wenn in einem unit file kein ziel verzeichnis angegben ist.

Da es unter /run/media/<user> liegt, könnte es sein @uhai dass du irgendwann mal einen benutzerspezifisches mount unit file erstellt hast?

So ein file liegt dann üblicherweise unter "~/.config/systemd/user/"

----------

## uhai

kurz eine Verständnisfrage:

auf meinem Desktop habe ich den mariadb-Server nicht in Benutzung. Die Datenbank für digikam liegt ja auf der NAS. Also ist das Verzeichnis /var/lib/mysql/ auf dem Desktop unwesentlich für mich. Ich brauche nur die Treiber für mariadb für den systemd-Start damit digikam auf die mariadb der NAS zugreifen kann.

beide mariadbs sind verschiedene Versionen:

mariadb-10.5.10-r2 auf dem Desktop

mariadb-5.5.57 auf der NAS 

Kann das das Problem sein, warum das plötzlich nicht mehr geht? Wo kann ich denn nachvollziehen, wann welche Pakete upgedatet wurden?

uhai

----------

## uhai

Vielleicht doch eher ein Problem von digikam:

```
digikam

QCommandLineParser: already having an option named "h"

QCommandLineParser: already having an option named "help-all"

QCommandLineParser: already having an option named "v"

QSqlDatabase:  driver not loaded

QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3

QSqlDatabase:  driver not loaded

QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3

QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-94014196090592' is still in use, all queries will cease to work.

QSqlDatabasePrivate::addDatabase: duplicate connection name 'digikamDatabase-94014196090592', old connection removed.

QSqlQuery::prepare: database not open

QSqlDatabase:  driver not loaded

QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3

[... viel Wiederholungen...]

QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3

QSqlDatabasePrivate::addDatabase: duplicate connection name 'digikamDatabase-140666822338880', old connection removed.

digikam.facedb: Face database: no database backend available in checkReadyForUse. Did you call setParameters before?

[1]    5472 segmentation fault (core dumped)  digikam

```

digikam scheint also über den mariadb-Treiber zu verfügen, lädt ihn aber nicht. Dann ist der missglückte Start des Mariadb-Servers auf meinem Desktop nicht ursächlich für den Fehlstart von digikam - oder doch?

uhai

----------

## uhai

Inzwischen habe ich den Zeitpunkt festgestellt, seit dem das Problem auftritt. Das war das world-Update vom 30.10.. Da kam portage mit.... und mehrere Pakete enthalten in dem logfile diesen Fehler:

```
Could not find a Makefile in the kernel source directory. 

Please ensure that /usr/src/linux points to a complete set of Linux sources
```

Anscheinend war der Link nicht mehr auf die Kernel-Sourcen gerichtet.  Das habe ich heute korrigiert und den kernel upgedatet. Gibt es eine Möglichkeit, alle Pakete, die diesen Fehler enthalten neu zu emergen ohne das manuell zu machen?

uhai

----------

## uhai

geht wieder... genauso überraschend, wie es ausfiel. Keine Ahnung was da passiert.....

Danke jedenfalls für Eure Mühe.

uhai

----------

