2016-07-22 23 views
9

Ich habe gerade MariaDB mit apt-get dist-upgrade aktualisiert. Jetzt wird es nicht mehr starten service mysql start mehr.MariaDB kann nach dem Update nicht gestartet werden: [Warnung] Testdatei konnte nicht erstellt werden /home/mysql/beta.lower-test

Ich kann es jedoch als root ausführen oder tun: sudo -u mysql mysqld_safe dann startet MariaDB gut. Der Ordner/home/mysql gehört dem Benutzer und der Gruppe mysql.

Ich habe den Fehler gefunden in dieser Funktion geworfen werden: https://github.com/MariaDB/server/blob/7ff44b1a832b005264994cbdfc52f93f69b92cdc/sql/mysqld.cc#L9865

ich nicht herausfinden kann, was als nächstes zu tun ist. Irgendwelche Zeiger?

+0

Setzen Sie einfach Ihr Datenbanksystem auf die vorherige Version ... oder sichern Sie Ihre Datenbanken ('mysqldump'), entfernen Sie jede einzelne Spur von MariaDB und installieren Sie dann die neueste Version von Grund auf neu :) – Hackerman

+0

Ja, wirklich nicht wollen Das. Muss ein einfacher Weg sein. – Bento

+0

Dann viel Glück :) – Hackerman

Antwort

17

auszuführen MariaDB SQL von/zu Hause, in der Datei/usr/lib/systemd/system/MariaDB .service, nur ändern:

ProtectHome=true 

zu:

ProtectHome=false 
+2

in Ubuntu 17.04 die Datei scheint hier verschoben zu haben/lib/systemd/system/ – wuppi

+1

Dies scheint einige Male zurückgesetzt zu werden. irgendeine Idee, dies zu verhindern? – wuppi

+0

Für debian 9 befindet sich die Datei unter /etc/systemd/system/multi-user.target.wants/mariadb.service. Und dann muss vor dem Start des Dienstes "systemctl daemon-reload" ausgeführt werden. – user1077915

2

@RedGiant ja ich löste es. Vergessen, hier zu posten.

Offenbar nach dem .1 Release können Sie SQL nicht mehr von/home ausführen. Es gibt wahrscheinlich einen Weg, aber ich habe es nicht gefunden.

Ich kann MySQL von jedem Ort außer/home ausführen. Was ich getan habe, war unmount/home (ich hatte meine SSD-RAID auf/home montiert) und neu mounten meine Festplatte als/SSD. Habe meine Pfade in der Config geändert und es hat sofort funktioniert.

Ich habe SELinux oder Apparmor nicht ausgeführt.

+0

Ja können Sie '/ home' verwenden. es ist nur eine schlechte Idee und braucht extra conf (Centos/Fedora) – quazardous

1

Die Abhilfe für diese ist das Verzeichnis, in Hause Montage als/var/lib/mysql:

mount --bind /home/mysql/var/lib/mysql /var/lib/mysql 
+0

Danke. Ich habe die obige Lösung verwendet, aber diese wird dauerhaft durch Updates entfernt. Daher hoffe ich, dass dies die langfristige Problemumgehung ist: Ich lege dies in die fstab '/ home/share/mysqldb/var/lib/mysql keine Bindung 0 0' – wuppi

0

Gleiche Situation nach dem Update auf Debi eine 8 (Jessie) und 9 (Stretch). Nach "apt-get upgrade" den Befehl

  • Service mysql

der Server nicht gestartet werden kann starten und meldet Fehler:

[Warnung] Kann Testdatei/home/nicht erstellen johndoe/UserDatabases/mypcname.lower-Test

die Lösung in der Datei /lib/systemd/system/mariadb.service den Wert zu ändern ist:

ProtectHome=true 

zu

ProtectHome=false 

wie oben beschrieben.