我在 Windows 笔记本电脑上安装了 Ubuntu 16.04,因此我有一个 Windows 文件格式的硬盘。现在我需要在该磁盘上创建一个 PostgreSQL 集群,因为它更大。但是,我收到权限错误:
yuqiong@yuqiong-G7-7588:/media/yuqiong/DATA$ sudo pg_createcluster -u yuqiong -d /media/yuqiong/DATA/postgresdb --start 11 3dcitydb
Creating new PostgreSQL cluster 11/3dcitydb ...
/usr/lib/postgresql/11/bin/initdb -D /media/yuqiong/DATA/postgresdb --auth-local peer --auth-host md5
The files belonging to this database system will be owned by user "yuqiong".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /media/yuqiong/DATA/postgresdb ... ok
creating subdirectories ... ok
selecting default max_connections ... 20
selecting default shared_buffers ... 400kB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... 2018-12-28 12:02:56.494 EST [405] FATAL: data directory "/media/yuqiong/DATA/postgresdb" has invalid permissions
2018-12-28 12:02:56.494 EST [405] DETAIL: Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
child process exited with exit code 1
initdb: removing contents of data directory "/media/yuqiong/DATA/postgresdb"
Error: initdb failed
但是用户yuqiong
确实rwx
对该驱动器拥有权限:
yuqiong@yuqiong-G7-7588:/media/yuqiong/DATA$ ll | grep postgresdb
drwxrwxrwx 1 yuqiong yuqiong 48 Dec 28 12:02 postgresdb/
据推测,我怀疑这是因为这个磁盘实际上不是Linux文件系统格式,所以返回的结果ll
实际上并不准确。
在这种情况下,我该如何解决这个问题并授予用户yuqiong
或postgres
该驱动器的适当权限?他们需要是目录的所有者才能在 PostgresQL 中创建数据库集群。
谢谢!
答案1
不。
实际上有一种方法可以几乎直接地做到这一点。
您可以轻松地将 NTFS 转换为 ext2 / ext3 任何转换文件 从anyfs 工具
然后你可以使用 tune2fs。
-- 回答“将文件系统转换为 NTFS -> EXT4?“ 经过恩佐替布
答案2
感谢 Carlos 的上述回答,这让我想起了一次旧讨论。我没有尝试过这个解决方案,所以不确定它是否有效。我担心的是我不知道如何正确备份我安装的应用程序。最后我压缩了所有内容,上传到 Google Cloud,使用重新格式化文件系统mkfs
,然后下载并解压所有内容。然后我能够在这个磁盘中创建一个集群...