Я только что установил Postgres и возился с ним и различными конфигурациями в течение 1-2 часов.
Я застрял в том, что не могу перейти на пользователя postgres
$ su - postgres
дает следующую ошибку: su: unknown login: postgres
$ sudo -u postgres psql
дает следующую ошибку: sudo: unknown user: postgres
Эти попытки делаются как обычный пользователь. Попытка их использовать как root дает точно такие же результаты. Я установил postgres через Homebrew на OS X и прочитал инструкции несколько раз.
macos
postgresql
Криста
источник
источник
postgres
пользователь.postgres_
вместо этого пользователь создается как . Обратите внимание на подчеркивание в конце. Кроме того, вы уверены, что вы (или установщик) действительно создали экземпляр PostgreSQL и запустили базу данных?postgres
пользователя. Решил проблему после установкиpostgresql-server
пакета.Ответы:
psql
: Выполняет вход с моим именем пользователя по умолчаниюpsql -U postgres
: Авторизует меня как пользователя postgresСудо мне не нужен.
Я использую Postgres.app для своей базы данных postgres в OS X. Это устранило головную боль, связанную с проверкой работоспособности установки и правильного запуска сервера базы данных. Посмотрите здесь: http://postgresapp.com
Изменить: Благодарим @Erwin Brandstetter за исправление моего использования аргументов.
источник
psql postgres
иpsql -d postgres
.К тому же
psql --help
, когда вы не установили параметры для имени базы данных (без-d
параметра), это будет ваше имя пользователя, если вы этого не сделали-U
, имя пользователя базы данных также будет вашим именем пользователя и т. Д.Но по
initdb
команде (для создания первой базы данных) у него нет вашего имени пользователя в качестве имени базы данных. У него есть база данных с именемpostgres
. Первая база данных всегда создается командой initdb при инициализации области хранения данных. Эта база данных называется postgres.Поэтому, если у вас нет другой базы данных с именем вашего пользователя, вам нужно сделать,
psql -d postgres
чтобы команда psql работала. И вроде дает-d
вариант по умолчанию,psql postgres
тоже работает.Если вы создали другую базу данных, имена которой совпадают с вашим именем пользователя (это должно быть сделано с
createdb
), тогда вы можетеpsql
только командовать . И, похоже, первое имя пользователя базы данных устанавливается как имя пользователя вашей машины по brew.или,
будет работать по умолчанию.
источник
OS X имеет тенденцию добавлять к именам системных учетных записей префикс «_»; вы не говорите, какую версию OS X вы используете, но по крайней мере в 10.8 и 10.9 пользователь _postgres существует при установке по умолчанию. Обратите внимание, что вы не сможете использовать
su
эту учетную запись (кроме как root), поскольку у нее нет пароля.sudo -u _postgres
, с другой стороны, должно работать нормально.источник
обсуждение и ответ здесь были мне очень полезны:
psql: FATAL: база данных "<пользователь>" не существует
источник
Работал нормально для меня в случае имени базы данных: postgres и имени пользователя: postgres. Таким образом, вам не нужно писать sudo.
А в случае другого db вы можете попробовать
Как указано в справке Postgres:
источник
$ psql -U postgres
выводитpsql: FATAL: role "postgres" does not exist
, ноpsql postgres
работает.Получаю точно такие же ошибки, что и крышах с
su - postgres
иsudo -u postgres psql
. Ответ DanielM также дает ошибки.Выходы при неправильных настройках
Однако ответьте на комментарий przbabu.
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
Чтобы не запрашивать пароль постоянно, у вас есть три варианта, как описано здесь .
источник
Для меня это было решение в macOS. Переустановите psql.
brew install postgres
Запустить сервер PostgreSQL
pg_ctl -D /usr/local/var/postgres start
Инициализировать БД
Если эта команда выдает ошибку, удалите старый файл базы данных и повторно запустите указанную выше команду.
Создать новую базу данных
Вы войдете в эту базу данных и сможете создать здесь пользователя для входа в систему
источник
Решение простое:
войдите в систему как root
и после:
источник