Postgresql
與 vagrant 一起使用時無法啟動 postgresql
嘗試在 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 年前,可能還需要一段時間才能修復!