Ответ 1
Чтобы запустить MariaDB SQL из /home, в файле /usr/lib/systemd/system/mariadb.service просто измените:
ProtectHome=true
to:
ProtectHome=false
Я только что обновил MariaDB, используя apt-get dist-upgrade. Теперь он больше не начнет использовать службу mysql start.
Однако я могу запустить его как root или сделать: sudo -u mysql mysqld_safe, после чего MariaDB запускается нормально. Папка /home/mysql принадлежит пользователю и группе mysql.
Я обнаружил, что в эту функцию входит ошибка: https://github.com/MariaDB/server/blob/7ff44b1a832b005264994cbdfc52f93f69b92cdc/sql/mysqld.cc#L9865
Я не могу понять, что делать дальше. Любые указатели?
Чтобы запустить MariaDB SQL из /home, в файле /usr/lib/systemd/system/mariadb.service просто измените:
ProtectHome=true
to:
ProtectHome=false
Такая же ситуация после обновления на Debian 8 (Jessie) и 9 (Stretch). После "apt-get upgrade" команда
сервер не запускается и регистрирует ошибку:
[Предупреждение] Невозможно создать тестовый файл /home/johndoe/UserDatabases/mypcname.lower-test
решение заключается в изменении в файле /lib/systemd/system/mariadb.service значения:
ProtectHome=true
to
ProtectHome=false
как описано выше.
@RedGiant да, я решил. Забыл здесь.
По-видимому, после выпуска .1 вы больше не можете запускать SQL из /home. Вероятно, есть способ обойти это, но не нашел.
Я могу запускать MySQL из любого места, кроме /home. То, что я сделал, было unmount/home (у меня был RAID-диск SSD, установленный в /home ) и снова установить мой диск как /ssd. Изменены мои пути в конфиге, и он сразу сработал.
Я не запускал SELinux или Apparmor.
Обходной путь для этого - установка каталога в доме как /var/lib/mysql:
mount --bind /home/mysql/var/lib/mysql /var/lib/mysql
В Debian 9 вам нужно изменить значение ProtectHome на false как в /lib/systemd/system/mariadb.service
и /lib/systemd/system/[email protected]
затем запустить sudo systemctl daemon-reload.
Возможно также запустите sudo grep -Ri "protecthome"/lib/systemd/system
чтобы найти другие экземпляры ProtectHome в файлах, связанных с mysql, если это все еще не работает