Я использую приложение PostgreSql для Mac ( http://postgresapp.com/ ). Я использовал его в прошлом на других машинах, но это доставляет мне некоторые проблемы при установке на мой MacBook. Я установил приложение и запустил:
psql -h localhost
Возвращает:
psql: FATAL: database "<user>" does not exist
Кажется, я даже не могу запустить консоль, чтобы создать базу данных, которую она пытается найти. То же самое происходит, когда я просто бегаю:
psql
или если я запускаю psql из выпадающего меню приложения:
Статистика машины:
OSX 10.8.4
psql (PostgreSQL) 9.2.4
Любая помощь приветствуется.
Я также попытался установить PostgreSql с помощью homebrew, и у меня возникла та же проблема. Я также прочитал страницу документации приложений, которая заявляет:
Когда Postgres.app запускается впервые, он создает базу данных $ USER, которая является базой данных по умолчанию для psql, если ни одна из них не указана. Пользователь по умолчанию - $ USER, без пароля.
Так что может показаться, что приложение не создает $ USER, однако я установил-> деинсталлировал-переустановил несколько раз, так что это должно быть что-то с моей машиной.
Я нашел ответ, но я не уверен, как именно он работает, поскольку пользователь, ответивший в этой теме -> Запуск Postgresql в Mac: база данных "postgres" не существует , не проследила. Я использовал следующую команду, чтобы открыть psql:
psql -d template1
Я оставлю этот вопрос без ответа, пока кто-нибудь не сможет объяснить, почему это работает.
createdb <user>
сработала для меня.
psql -U user -d postgres
, это гарантирует, что пользователь подключен к базе данных postgres, которая уже существует. Поэтому мы должны передать базу данных также во время входа в систему.
psql -d postgres -U postgres -h localhost
показывает? Без флагов это по умолчанию для пользователя CLI, и я бы сказал, что это по умолчанию для "postgres" admin db, но у меня нет mac для тестирования.