Postgresql

與 vagrant 一起使用時無法啟動 postgresql

  • November 26, 2017

嘗試在 Vagrant 管理的 Virtualbox VM 上啟動 postgresql 時出現以下錯誤:

LOG:  could not link file "pg_xlog/xlogtemp.29" to "pg_xlog/000000010000000000000001" (initialization of log file): Operation not permitted
FATAL:  could not open file "pg_xlog/000000010000000000000001": No such file or directory

當 postgresql 的數據目錄位於 Vagrant 共享文件夾(/vagrant例如)中,並且 Vagrant 主機是 Windows 時,會發生這種情況。在這種情況下,不能以 unix 方式設置權限。

將該文件夾移動到另一個位置(例如 vagrant 使用者的主目錄),postgresql 將啟動。

解決方案位於:https ://gitlab.com/gitlab-org/gitlab-development-kit/issues/20

造成這種情況的根本原因是 vboxsf 不支持文件系統連結(既不是硬連結也不是符號連結)。您可以通過在 VirtualBox 來賓中安裝主機文件夾並嘗試執行以下操作來重現該問題: ln /path/to/mounted/share/existingfile.txt /some/path/link-to-file.txt

例如(將 /var/data 安裝為 vboxsf 共享) jim@a55a005fc5a5:/~ ln /var/data/foo.txt ~/data/link-to-foo ln: failed to create hard link ‘/users/jim/data/link-to-foo’ => ‘/var/data/foo.txt’: Operation not permitted

virtualbox.org ( #818 , #10085 )上有很多門票,但看到它們可以追溯到 7 年前,可能還需要一段時間才能修復!

引用自:https://serverfault.com/questions/699966