2016-07-22 82 views
9

我剛剛使用apt-get dist-upgrade更新了MariaDB。現在它不會開始使用服務mysql start了。MariaDB在更新後無法啓動:[Warning]無法創建測試文件/home/mysql/beta.lower-test

但是,我可以運行它作爲根或做: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的。服務,只是改變:

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發佈之後顯然你不能從/ home運行SQL了。這可能有一種解決方法,但沒有找到它。

我可以從/ home以外的任何位置運行MySQL。我所做的是卸載/主頁(我的SSD RAID安裝到/ home),並將我的磁盤重新安裝爲/ ssd。在配置中更改了我的路徑,並立即工作。

我沒有運行SELinux或Apparmor。

+0

是的,您可以使用'/ home'。這只是一個壞主意,需要額外的conf(centos/fedora) – quazardous

1

這種情況的解決辦法是安裝在家裏的目錄中的/ var/lib中/ MySQL的:

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

謝謝。我使用了上面的解決方案,但這會被updtes永久刪除。因此,我希望這是一個長期的解決方法: 我把這個放在fstab中'/ home/share/mysqldb/var/lib/mysql none bind 0 0' – wuppi

0

更新後同樣的情況在德比8(Jessie)和9(Stretch)。後 「易於得到升級」 命令

  • 服務啓動mysql

服務器無法啓動,並記錄錯誤:

[注意]無法創建測試文件/ home /輸入johndoe/UserDatabases/mypcname.lower測試

所述溶液是在文件/lib/systemd/system/mariadb.service改變值:

ProtectHome=true 

ProtectHome=false 

如上所述。