2017-02-22 53 views
1

Я использую CentOS 7.3 в качестве гостевой виртуальной машины из Oracle VirtualBox. Хост - это Windows 7, и у меня есть физический USB-накопитель (он же флеш-накопитель) для размещения каталога данных для Postgres. Я могу использовать USB-накопитель как смонтированный каталог в Linux. Я могу читать и писать на него файлы.Как вы настраиваете расположение баз Postgres на сервере Linux?

Я надеюсь, что у меня будут базы данных Postgres на моем USB-накопителе. Но я не могу получить базы данных Postgres на своем USB-накопителе. Я установил Postgres на виртуальную машину Linux.

Чтобы изменить каталог данных по умолчанию для 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, я получаю сообщение об ошибке.

Вот команда, которую я пытаюсь (как корень):

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-накопителе.

+0

Является ли пользователь postgres в правильной группе доступ к общим папкам? – david25272

ответ

0

Я решил ту же проблему на CentOS 6 Возможно, вы сможете попробовать.

  1. Добавить ваш диск
  2. Проверьте ваш диск существующей (в моем случае новый диск/DEV/sdb1 /)

    # fdisk -l
  3. Mount новый диск

    # mkdir /hdd2
    # mount -t ext3 /dev/sdb1 /hdd2/
  4. Автоматическое крепление жесткого диска путем добавления новой строки:

    # vi /etc/fstab 
    Add line: /dev/sdb1 /hdd2 ext3 defaults 0 0 
    
  5. Config Postgres

    # service postgresql stop
    # vi /etc/sysconfig/pgsql/postgresql 
    Add line: PGDATA=/hdd2/data 
    
    # service postgresql start

Надеется, что это полезно для вас !!

+0

У меня нет файла «/ 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

+0

@ Alex111 Ваша система Redhat, правильно? Вы можете попробовать config на этом пути '3) /etc/pam.d/postgresql'. Пожалуйста, дайте мне знать, если у вас что-нибудь есть. – nmtri