2014-11-19 13 views
3

Я установил PostgreSQL, используя установку EnterpriseDB.-bash: initdb: команда не найдена

sudo ./postgresql-9.3.5-3-osx.app/Contents/MacOS/installbuilder.sh --mode unattended Я побежал, а затем побежал open /Applications/TextEdit.app .profile отредактировать мой файл .profile вновь созданный в/Users/Dhruv добавить строку source /Library/PostgreSQL/9.3/pg_env.sh.

Запуск createuser Dhruv --pwprompt --username=postgres я получил

-bash: createuser: command not found

Затем работает unknown-88-1f-a1-1b-c2-ec:9.3 dhruv$ sudo -u postgres /bin/createuser и различные другие методы Я смог настроить что-то с помощью своего рода подсказки пароля. Я знаю, что это позже, потому что с помощью sudo -u postgres /Library/PostgreSQL/9.3/bin/createuser я получил

createuser: creation of new role failed: ERROR: role "postgres" already exists

Бег затем initdb -D /Library/PostgreSQL/9.3/data I get

-bash: initdb: command not found.

вывести так, если бы я попробовать то же самое, но при подключении к Postgres, sudo su - postgres, а затем initdb -D /Library/PostgreSQL/9.3/data я снова

-bash: initdb: command not found.

В потере при работе. 1) как узнать подробности этой предполагаемой роли «postgres», которую я создал магически, и 2) почему initdb не работает?

ответ

0

Кто вы вошли как?

Когда вы выполняете sudo или su -, он запускает скрипты инициализации для root, такие как .bashrc и .bash_profile.

Они могут устанавливать разностные исполняемые пути поиска между root, postgres и вами.

Попробуйте что-нибудь вроде sudo initdb, или su - postgres -c initdb ... какой пользователь имеет правильные пути, чтобы путь был настроен.

Вы также можете продублировать код создания пути/lib в своей собственной среде, но это сломается, если оно когда-либо изменится.

+0

Как узнать, с кем я вошел? В моей собственной оболочке у меня есть неизвестный-88-1f-a1-1b-c2-ec: bin dhruv $. Я попробовал оба, что вы сказали, для 'sudo initdb' Сначала меня попросили ввести пароль, после чего я получил 'sudo: initdb: command not found'.Для «su-postgres -c initdb -D /Library/PostgreSQL/9.3/data» я получил «Пароль:» в качестве подсказки, затем все, что я набираю, получаю «su: Sorry». –

-1

То же самое случилось со мной. Я новичок в OS X от Linux, вот что я должен был сделать. Я установил postgres через homebrew, и когда я это сделал, я заметил, что он поставил все, что он загрузил:/usr/local/Cellar/postgresql/($ postgres_version)/

Когда я в cd'd в эту папку увидел каталог с именем bin, поэтому я cd'd и увидел initdb прямо там. Так что мне пришлось потом добавить это мой путь, так что я мог бы использовать команду:

$ экспорт PATH =/USR/местные/Погреб/PostgreSQL/9.4.4/бен: $ PATH

надеюсь, что поможет вам

+0

Я не знаю о PostgreSQL, но обычно с 'homebrew' вы только добавляете'/usr/local/bin' в свой PATH, поскольку он символизирует оттуда в Подвал. Я бы с уважением предложил вам проверить это и подумать о том, чтобы запустить «варить доктора», чтобы проверить здоровье самостоятельно. Позже, когда вы будете «кидать обновление xyz», символическая ссылка в '/ usr/local/bin' автоматически изменится на новую версию для вас, тогда как ваш PATH с номером версии в нем не будет ... –

1

Как я зафиксировал это, запустите brew doctor, и вы можете увидеть сообщение postgresql un der Warning: указывает, что в вашем подвале есть несвязанные бочонки. Попробуйте запустить brew link postgresql. Он покажет некоторые созданные символические ссылки. Затем запустите init db ....

Надеюсь, что эта помощь!

+0

Работал для меня. Хороший звонок. –

Смежные вопросы