#postgresql #ubuntu
#postgresql #ubuntu
Вопрос:
Я хотел бы установить postgresql
на сервере Linux (Ubuntu).
Если я сделаю следующее:
sudo apt-get install postgresql
он собирается установить его в
/var/lib/postgresql/9.5/main
хотя я хотел бы иметь его в
/home/database/postgresql/9.5/main
Ответ №1:
Postgres использует PGDATA
переменную окружения, чтобы понять, где вы хотите, чтобы это работало. Отредактируйте сценарий инициализации (либо /etc/init.d/postgresql
, либо /usr/lib/systemd/postgresql.service
) и установите PGDATA
соответствующим образом. Например:
# Note: changing PGDATA will typically require adjusting SELinux
# configuration as well.
# Note: do not use a PGDATA pathname containing spaces, or you will
# break postgresql-setup.
[Unit]
Description=PostgreSQL database server
After=syslog.target
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
# Note: avoid inserting whitespace in these Environment= lines, or you may
# break postgresql-setup.
# Location of database directory
Environment=PGDATA=/var/sql/pgsql/
# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog
# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000
#ExecStartPre=/usr/local/pgsql/bin/postgresql95-check-db-dir ${PGDATA}
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t 300
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Вы также можете попробовать использовать символическую ссылку /var/lib/postgresql/9.5/main
на /home/database/postgresql/9.5/main
— может быть проще.