我最近购买了一块新硬盘,仅用于存储数据库。我正在运行 Ubuntu 10.0.4。
由于我之前没有做过这种事,所以我决定使用 GUI(磁盘实用程序)来格式化和安装磁盘(以避免因命令行中的拼写错误等而导致的任何混乱)。
我正确识别了新的驱动器并按以下步骤操作:
- 选择格式化驱动器
- 选定类型:‘Ext4’
- 选中“获取文件系统所有权”复选框
- 取消选中“加密底层设备”复选框
- 为新卷提供一个名称 (mydata)
设备格式化后,我按如下方式安装该设备:
sudo mount /dev/sdb /mydata
我创建了目录 /mydata/pgdbdata
并改变所有权如下
sudo chown -R postgres:postgres /mydata/pgdbdata
我检查:
username@localhost:~$ ls -l /mydata/
total 20
drwx------ 2 root root 16384 2012-06-19 23:05 lost+found
drwxr-xr-x 2 postgres postgres 4096 2012-06-20 19:04 pgdbdata
但是当我更改为 postgres 用户时:
username@localhost:~$ sudo su - postgres
postgres@localhost:~$ ls -l /mydata/
ls: cannot open directory /mydata/: Permission denied
由于这个权限问题,我可以启动 postgresql 服务,但无法创建 postgresql db 集群。我被困住了。
我究竟做错了什么?
答案1
您只更改了的权限,pgdbdata
但并未更改,mydata
您应该能够执行此操作ls -l /mydata/pgdbdata
,但如果您的 postgresql 用户想要查看mydata
其内容,则也必须具有对其的读取权限。