2016-07-22 1 views
9

Я только что обновил MariaDB, используя apt-get dist-upgrade. Теперь он больше не начнет использовать сервис mysql start.MariaDB не может запускаться после обновления: [Warning] Не удается создать тестовый файл /home/mysql/beta.lower-test

Я могу, однако, запустить его как root или сделать: sudo -u mysql mysqld_safe, после чего MariaDB запускается нормально. Папка/home/mysql принадлежит пользователю и группе mysql.

Я нашел ошибку быть выброшено в этой функции: https://github.com/MariaDB/server/blob/7ff44b1a832b005264994cbdfc52f93f69b92cdc/sql/mysqld.cc#L9865

Я не могу понять, что делать дальше. Любые указатели?

+0

Просто верните вашу систему баз данных в предыдущую версию ... или создайте резервную копию своих баз данных ('mysqldump'), удалите каждую отдельную трассировку MariaDB, а затем установите последнюю версию с нуля :) – Hackerman

+0

Да, не очень хочу что. Должен быть более простой способ. – Bento

+0

Тогда удачи :) – Hackerman

ответ

17

Для запуска MariaDB SQL из/дома, в файле/USR/Lib/Systemd/системы/MariaDB .Service, просто изменить:

ProtectHome=true 

к:

ProtectHome=false 
+2

в ubuntu 17.04 файл, кажется, переместился сюда/lib/systemd/system/ – wuppi

+1

это похоже справка несколько раз. любая идея предотвратить это? – wuppi

+0

Для файла debian 9 файл находится в /etc/systemd/system/multi-user.target.wants/mariadb.service. И затем перед запуском службы он должен быть запущен «systemctl daemon-reload» – user1077915

2

@RedGiant да, я решил. Забыл здесь.

По-видимому, после выпуска .1 вы больше не можете запускать SQL из дома. Вероятно, есть способ обойти это, но не нашел.

Я могу запускать MySQL из любого места, кроме/дома. То, что я сделал, было unmount/home (у меня был RAID-диск SSD, установленный в/home) и снова установить мой диск как/ssd. Изменен путь в конфиге, и он сразу сработал.

Я не запускал SELinux или Apparmor.

+0

Да, вы можете использовать '/ home'. это просто плохая идея и нуждается в дополнительном conf (centos/fedora) – quazardous

1

Обойти это монтаж каталог, в доме, как/вар/Lib/MySQL:

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

Спасибо. Я использовал вышеприведенное решение, но оно постоянно удаляется обтекателями. Таким образом, я надеюсь, что это долгосрочное решение: Я положил это в fstab '/ home/share/mysqldb/var/lib/mysql none bind 0 0' – wuppi

0

Такая же ситуация после обновления на Деби 8 (Джесси) и 9 (стретч). После того, как "APT-получить обновление" команду

  • сервис MySQL начать

сервер не запускается и регистрирует ошибки:

[Предупреждение] Не удается создать тестовый файл/дома/JohnDoe/UserDatabases/mypcname.lower-тест

решение изменить в файле /lib/systemd/system/mariadb.service значение:

ProtectHome=true 

к

ProtectHome=false 

, как описано выше.