Ich habe den MariaDB-Server installiert und einen Root-Benutzer mit einem Passwort erstellt mit
sudo apt install mariadb-server
sudo mysql_secure_installation
Da ich einen Rasperri Pi verwende möchte ich die DB auf eine externe Festplatte auslagern. Dazu habe ichdieses Tutorial
Nachdem ich die cnf-Dateien geändert habe (alle unter /etc/mysql/mariadb.conf/ und auch die debian.cnf-Datei unter /etc/mysql), schlägt das Starten des MySQL-Dienstes fehl:
$ sudo service mysql start
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
Im Protokoll steht, dass keine Testdatei erstellt werden konnte:
$systemctl status mariadb.service
Okt 30 22:56:31 raspberrypitouch systemd[1]: Starting MariaDB 10.3.31 database server...
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [Note] /usr/sbin/mysqld (mysqld 10.3.31-MariaDB-0+deb10u1) starting as process 4694 ...
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [Warning] Can't create test file /media/pi/DBDRIVE/MariaDB/raspberrypitouch.lower-test
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: [101B blob data]
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [ERROR] Aborting
Okt 30 22:56:31 raspberrypitouch systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Okt 30 22:56:31 raspberrypitouch systemd[1]: mariadb.service: Failed with result 'exit-code'.
Okt 30 22:56:31 raspberrypitouch systemd[1]: Failed to start MariaDB 10.3.31 database server.
nach ausführlicher Suche habe ich folgende mögliche Ursachen gefunden und ausgeschlossen:
RüstungUndSELinuxblockieren den Zugriff auf das neue Verzeichnis -> sie sind nicht installiert
getenforce -bash: getenforce: command not found
Und
aa-status -bash: aa-status: command not found
-
Ich habe alle Pfade kopiert und ein Tippfehler wäre ein wirklich schlechter Grund, zwei Tage beschäftigt zu sein
-
Ich habe das hier kopiert, daher sollten die Berechtigungen korrekt sein:
cp -R -p /var/lib/mysql/* /media/pi/DBDRIVE/MariaDB/
übergeordneter Ordner
/media/pi/DBDRIVE $ ls -l total 20 drwx------ 2 mysql mysql 16384 Oct 29 12:25 lost+found drwxrwxrwx 6 mysql mysql 4096 Oct 30 23:07 MariaDB
der db-Ordner selbst
/media/pi/DBDRIVE/MariaDB $ ls -l total 110632 -rw-rw---- 1 mysql mysql 16384 Oct 30 15:30 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Oct 30 15:30 aria_log_control -rw-r--r-- 1 root root 0 Oct 30 13:02 debian-10.3.flag -rw-rw---- 1 mysql mysql 976 Oct 30 15:30 ib_buffer_pool -rw-rw---- 1 mysql mysql 12582912 Oct 30 15:30 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Oct 30 15:30 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Oct 30 13:02 ib_logfile1 -rw-rw---- 1 mysql mysql 0 Oct 30 13:02 multi-master.info drwx------ 2 mysql mysql 4096 Oct 30 13:02 mysql drwxrwxrwx 2 mysql mysql 4096 Oct 30 17:50 mysqld drwx------ 2 mysql mysql 4096 Oct 30 13:02 performance_schema drwx------ 2 mysql mysql 4096 Oct 30 15:12 testDB
die Fahrt
/media/pi/DBDRIVE $ ls -l total 20 drwx------ 2 mysql mysql 16384 Oct 29 12:25 lost+found drwxrwxrwx 7 mysql mysql 4096 Oct 30 23:58 MariaDB
Pi
/media/pi $ ls -l total 4 drwxr-xr-x 4 mysql mysql 4096 Oct 30 16:53 DBDRIVE
Medien
/media $ ls -l total 4 drwxr-x---+ 3 root root 4096 Oct 31 01:42 pi
falsches Format für externes Laufwerk
df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/root ext4 29G 3.8G 25G 14% / devtmpfs devtmpfs 776M 0 776M 0% /dev tmpfs tmpfs 937M 0 937M 0% /dev/shm tmpfs tmpfs 937M 8.6M 928M 1% /run tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs tmpfs 937M 0 937M 0% /sys/fs/cgroup /dev/mmcblk0p1 vfat 253M 49M 204M 20% /boot tmpfs tmpfs 188M 4.0K 188M 1% /run/user/1000 /dev/sda ext4 916G 186M 870G 1% /media/pi/DBDRIVE
-
Hierist im Grunde der gleiche Fall, aber die Lösung funktioniert bei mir nicht
Jeder Hinweis in die richtige Richtung ist willkommen
Warum kann ich den Dienst nicht starten?
Antwort1
Wie in den Kommentaren erwähnt, konnte das Problem manuell durch Ausführen von reproduziert werden sudo -u mysql touch /media/pi/DBDRIVE/MariaDB/raspberrypitouch.lower-test
. Dies führte zu einem „Zugriff verweigert“-Fehler.
Da die Frage zeigt, dass das Verzeichnis „MariaDB“ vollständig dem Benutzer „mysql“ gehört, liegt das Problem höchstwahrscheinlich bei einem der übergeordneten Verzeichnisse – „/media“, „/media/pi“ und „/media/pi/DBDRIVE“. Diese Verzeichnisse benötigen mindestens Ausführungsberechtigungen (für alle Benutzer), damit der Benutzer „mysql“ auf das Verzeichnis „/media/pi/DBDRIVE/MariaDB/“ zugreifen kann.
OP hat bestätigt, dass dem /media-Verzeichnis die erforderlichen Berechtigungen fehlten und dass das Hinzufügen dieser Berechtigungen das Problem behoben hat.
Verwandter Hinweis aus der MariaDB-Wissensdatenbank:https://mariadb.com/kb/en/was-tun-wenn-mariadb-nicht-startet/#kann-keine-testdatei-erstellen