我使用CentOS 7.3作为Oracle VirtualBox的来宾VM。主机是Windows 7,我有一个物理USB记忆棒(也就是闪存驱动器)来存放Postgres的数据目录。我可以使用USB记忆棒作为Linux中的安装目录。我可以读取和写入文件。
我希望能够在我的USB记忆棒上安装Postgres数据库。但我无法在我的USB记忆棒上获得Postgres数据库。我在Linux VM上安装了Postgres。
要更改Postgres的默认数据目录,我按照directions。
进行了操作如果您没有时间去链接,我只需使用以下两个命令安装Postgres:
@echo off
set "file=Config.mak"
findstr /r ".:=$" "%file%" >empty.txt
findstr /r ".:=true$" "%file%" >true.txt
findstr /r ".:=" "%file%" | findstr /r /v ":=$ :=true$" >unprocessed.txt
然后我运行了这两个命令:
yum -y install postgresql-server postgresql-contrib
postgresql-setup initdb
之后我尝试启动Postgres服务,我收到错误。
这是我尝试的命令(以root身份):
systemctl start postgresql
这是错误:
postgresql.service的作业失败,因为控制进程已退出 有错误代码。参见" systemctl status postgresql.service"和 " journalctl -xe"细节。
我试过了mv /var/lib/pgsql/data/* /mnt/windows-share/data
ln -s /mnt/windows-share /var/lib/pgsql/data
,我发现了这个:
已加载:已加载(/usr/lib/systemd/system/postgresql.service;已禁用) vendorpreset:disabled)
活动:失败(结果退出代码)...处理... ExecStartPre = / usr / bin / postgresql-check-db-dir $ {PGDATA}(code = exited, 状态= 1 /失败)
...无法启动PostgreSQL ......单位postgresql.service ... ... postgresql.service失败
我使用systemctl status postgresql.service
,但这并没有告诉我任何有意义的事情。
要更改Postgres的默认数据目录,我试过这个:
journalctl -xe
但我得到了
未能在--pgdata = / mnt / mar / data.service
中找到PGDATA设置
如何使用自定义数据目录安装Postgres?我需要它在" / mnt /"目录。我想在USB记忆棒上创建我的所有数据库。
答案 0 :(得分:1)
要在自定义位置(例如 home/postgres 目录)安装 Postgres,请按照以下步骤操作
安装所需的 Postgres 版本,例如13 在 Home 中创建 postgres 目录。并将其访问权限授予 posgres 用户
mkdir postgres
chown postgres:postgres postgres
usermod -m -d /home/postgres postgres
将数据目录移动到新位置:
rsync -av /var/lib/pgsql/ /home/postgres/
将 postgres 服务器中的位置更新为:
find / -name postgresql-9.5.service
vi /usr/lib/systemd/system/postgresql-9.5.service
更新文件中的数据位置:
来自旧位置,例如
# Location of database directory
Environment=PGDATA=/var/lib/pgsql/13/data/
到新位置,例如
# Location of database directory
Environment=PGDATA=/home/postgres/13/data/"
停止 postgres,重新加载 deamon 并启动 postgres
stop postgres
systemctl daemon-reload
start postgres
完成...
答案 1 :(得分:0)
我'我们在CentOS 6上解决了同样的问题 也许你可以尝试一下。
检查您的磁盘是否存在(在我的情况下,新磁盘是/ dev / sdb1 /)
# fdisk -l
装载新磁盘
# mkdir /hdd2
# mount -t ext3 /dev/sdb1 /hdd2/
通过添加新行自动挂载硬盘:
# vi /etc/fstab Add line: /dev/sdb1 /hdd2 ext3 defaults 0 0
配置postgres
# service postgresql stop
# vi /etc/sysconfig/pgsql/postgresql Add line: PGDATA=/hdd2/data
# service postgresql start
希望对你有用!!