如何自定义Linux服务器上Postgres数据库的位置?
我使用CentOS 7.3作为Oracle VirtualBox的访客虚拟机。主机是Windows 7,我有一个物理U盘(又名闪存盘)来存放Postgres的数据目录。我可以使用USB棒作为Linux中的挂载目录。我可以读取和写入文件。如何自定义Linux服务器上Postgres数据库的位置?
我希望能够在我的USB记忆棒上安装Postgres数据库。但是我无法在我的USB记忆棒上获得Postgres数据库。我在Linux VM上安装了Postgres。
要更改Postgres的默认数据目录,我按照这些directions。
如果你没有时间去联系,我只是安装的Postgres这两个命令:
yum -y install postgresql-server postgresql-contrib
postgresql-setup initdb
然后我跑这两个命令:
mv /var/lib/pgsql/data/* /mnt/windows-share/data
ln -s /mnt/windows-share /var/lib/pgsql/data
后来我试着启动Postgres服务,我得到一个错误。
这里是我尝试(作为root)命令:
systemctl启动PostgreSQL的
以下是错误:
Job for postgresql.service failed because the control process exited with error code. See "systemctl status postgresql.service" and "journalctl -xe" for detail.
我试图systemctl status postgresql.service
,我发现这一点:
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled vendorpreset: disabled)
Active: failed (Result exit-code)... Process ... ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)
... failed to start PostgreSQL... ...Unit postgresql.service... ...postgresql.service failed
我用journalctl -xe
但这并没有告诉我有意义的。
要改变的Postgres的默认数据目录,我试过这样:
postgresql-setup initdb --pgdata=/mnt/windows-share/
但我得到
failed to find PGDATA setting in --pgdata=/mnt/mar/data.service
我如何使用自定义的数据目录中安装的Postgres?我需要它在“/ mnt /”目录下。我想在USB棒上创建所有数据库。
我在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
希望对你有用!
我没有文件“/ etc/sysconfig/pgsql/postgresql”。我有这些文件: 1)/ run/postgresql 2)/ etc/selinux/targetd/active/modules/100/postgresql 3)/etc/pam.d/postgresql 4)/ usr/libexec/initscripts/legacy- actions/postgresql我该怎么做? – Alex111
@ Alex111你的系统是Redhat,对吗?你可以在这个路径下试试'3)/etc/pam.d/postgresql'。请让我知道你有没有什么。 – nmtri
正确组中的postgres用户访问共享文件夹吗? – david25272