我在双引导机器上安装了 PostgreSQL 9.4(在 Win 7 和 Ubuntu 14.10 上)。这两个系统共享一个驱动器(NTFS 格式),其中包含一个在 Windows 下创建的 PSQL 数据库目录。显然,PSQL 安装是特定于系统的,而且它们也恰好位于不同的分区上。该驱动器在 Linux 下自动挂载,并授予完全读/写/执行权限。
我想知道是否可以在两个系统之间共享结构和数据,而无需在每次加载新操作系统时复制和/或复制所有内容。实际上,我希望所有数据在 Windows 中创建时都可用于 Ubuntu,反之亦然。
这是可能的,如果是这样,假设所有数据最初是在 Windows 下生成的,如何从 Linux 设置它?
编辑:我尝试运行:
sudo pg_dropcluster --stop 9.4 main
Run Code Online (Sandbox Code Playgroud)
其次是
sudo pg_createcluster -d /db_from_windows_path 9.4 main
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但是当再次启动服务器时,我得到:
sudo /etc/init.d/postgresql start
* Starting PostgreSQL 9.4 database server
* Error: could not exec /usr/lib/postgresql/9.4/bin/pg_ctl /usr/lib/postgresql/9.4/bin/pg_ctl start -D /db_from_windows_path -s -o -c config_file="/etc/postgresql/9.4/main/postgresql.conf" :
[fail]
Run Code Online (Sandbox Code Playgroud)
它看起来非常神秘,特别是因为它/var/log/postgresql/postgresql-9.4-main.log是完全空的,/var/log/postgresql/目录的其余部分也是如此
编辑 2:经过一番观察,我注意到 chown 没有被占用,因为 NTFS 系统显然只能在安装时设置。在修复 /etc/fstab 以将所有权授予 postgres 后, …