LINUX.ORG.RU

Вопрос по инициализации PostgreSQL 7.2.1


0

0

Компиляция и установка проходит без проблем, но при инициализации постгреса командой: /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

скрипт вылетает с ошибкой: initializing pg_shadow... /usr/local/pgsql/bin/initdb: cannot create temp file for here document: Permission denied

Где же он пытается этот темп файл создать? chown postgres на datadir сделал... Дистрибутив Alt Linux Junior 2.0


А от какого пользователя Вы пытаетесть произвести это действие? Ибо все временные файлы хранит он в своем домашнем, который, обычно, принадлежит pgsql - вот от него все действия и выполняйте (т.е. su - pgsql -c /usr/local/pgsql/bin/initdb -D/usr/local/pgsql/data)

gennik
()

Да от его юзера (postgres) и выполняю. До этого он в каталоге data создает конфиги, директории и т.п. Т.е. скрипт вылетает не с самого начала. Кстати, когда его (скрипт) пытаешься запустить из-под рута - он ругается на юзера и останавливается. Так что все правильно, вроде. Все по инструкции делал. Постгрес запускается, но ругается на отсутствие рутовой таблицы.

Может надо еще chown -R postgres /usr/local/pgsql сделать? Я это только на /usr/local/pgsql/data сделал.

PS: Еще забавно. su - postgres в Junior не работает, пишет: su: exec failed. А если указать ему шелл - запускается. Видимо особенность дистрибутива.

Sergio
() автор топика

Можно попробовать, хотя и странно. А то, что от root не дает - это правильно, политика безопасности (причем заметно лучше, чем в mysql)

gennik
()

Победил. Проделал следующее:

/usr/sbin/userdel postgres /usr/sbin/useradd postgres chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

И вуаля ;) Как видим даже su заработал как следует. Интересно, может по-дефолту юзер postgres был отключен? Может кто-нить прояснить ситуацию?

Sergio
() автор топика

Сейчас буду разбираться как его в автозагрузку впихнуть... ;)

Sergio
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.