Пользователь Postgres не существует?



Я только что установил Postgres и возился с ним и различными конфигурациями в течение 1-2 часов.



Я застрял на не удается перейти на postgres-user



$ su - postgres приводит к следующей ошибке:su: unknown login: postgres



$ sudo -u postgres psql приводит к следующей ошибке:sudo: unknown user: postgres



эти попытки как обычный пользователь. Попытка их как корень имеет те же самые результаты. Я установил postgres через Homebrew на OS X, и я прочитали инструкцию несколько раз.

1375   7  

7 ответов:

psql: войти в систему с моим именем пользователя по умолчанию

psql -U postgres: регистрирует меня как пользователя postgres

судо, кажется, не требуется для меня.

Я использую Postgres.приложение для моей базы данных OS X postgres. Это сняло головную боль, убедившись, что установка работает, и сервер базы данных был запущен правильно. Проверьте это здесь: http://postgresapp.com

Edit: кредит @Erwin Brandstetter для исправления моего использования аргументы.

OS X имеет тенденцию префикс имена системных учетных записей с"_"; вы не говорите, какую версию OS X вы используете, но по крайней мере в 10.8 и 10.9 пользователь _postgres существует в установке по умолчанию. Обратите внимание, что вы не сможете su к этой учетной записи (кроме как root), так как у нее нет пароля. sudo -u _postgres, С другой стороны, должно работать нормально.

By psql --help, когда вы не установите параметры для имени базы данных (без -d вариант) это будет ваше имя пользователя, если вы не сделали -U, имя пользователя базы данных также будет вашим именем пользователя и т. д.

но initdb (для создания первой базы данных) команда не имеет вашего имени пользователя в качестве имени базы данных. Он имеет базу данных с именем postgres. первая база данных всегда создается командой initdb при инициализации области хранения данных. Эта база данных называется Постгрес.

так что если у вас нет другой базы данных с именем пользователя, вам нужно сделать psql -d postgres для работы команды psql. И, кажется, это дает по умолчанию psql postgres тоже работает.

если вы создали другую базу данных с именами, совпадающими с вашим именем пользователя, (это должно быть сделано с createdb), то вы можете выполнить команду psql только. И кажется, что первое имя пользователя базы данных устанавливается как имя пользователя вашей машины варить.

psql -d <first database name> -U <first database user name>

или

psql -d postgres -U <your machine username>
psql -d postgres

будет работать по умолчанию.

Обсуждение и ответ здесь были очень полезны для меня:

psql: FATAL: база данных " " не существует

psql -U postgres

отлично работал для меня в случае имени БД: postgres & username: postgres. Так что вам не нужно писать судо.

и в случае другой БД, вы можете попробовать

psql -U yourdb postgres

как это дано в справке Postgres:

psql [OPTION]... [DBNAME [USERNAME]]

Я получаю точно такие же ошибки, как на крышах с su - postgres и sudo -u postgres psql. Ответ Даниэля дает также ошибки.

выходы при неправильных настройках

ответ, однако, из комментария пшбабу.

masi$ psql
psql: FATAL:  database "masi" does not exist
masi$ psql -U postgres
psql: FATAL:  role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.

Я думаю, что некоторая часть этой проблемы может быть в настройках владельца в OSX

masi$ ls -al /Users/
total 0
drwxr-xr-x   7 root      admin  238 Jul  3 09:50 .
drwxr-xr-x  37 root      wheel 1326 Jul  2 19:02 ..
-rw-r--r--   1 root      wheel    0 Sep 10  2014 .localized
drwxrwxrwt   7 root      wheel  238 Apr  9 19:49 Shared
drwxr-xr-x   2 root      admin   68 Jul  3 09:50 postgres
drwxr-xr-x+ 71 masi      staff 2414 Jul  3 09:50 masi

но делать sudo chown -R postgres:staff /Users/postgres дает chown: invalid user: ‘postgres:staff’.

короче, это не решение проблемы. Используйте инструменты, предоставляемые установкой postgres для создания пользователя и базы данных.

чтобы получить правильные настройки и выходы

есть определенные команды после установки postgres, чтобы добавить нового пользователя в систему базы данных. После initdb выполните следующие действия, как описано здесь

createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development

чтобы избежать запроса пароля все время, у вас есть три варианта, как описано здесь.

решение простое:
войдите в систему как root
и после:

su - postgres

psql

Comments

    Ничего не найдено.