Acabei de instalar o Postgres e estou mexendo nele e em várias configurações por 1-2 horas.
Estou preso por não conseguir mudar para o postgres-user
$ su - postgres
produz o seguinte erro: su: unknown login: postgres
$ sudo -u postgres psql
produz o seguinte erro: sudo: unknown user: postgres
Essas tentativas são feitas como o usuário normal. Tentá-los como root tem exatamente os mesmos resultados. Eu instalei o postgres via Homebrew no OS X e li as instruções várias vezes.
macos
postgresql
krystah
fonte
fonte
postgres
usuário adequado .postgres_
. Observe o sublinhado final. Além disso, tem certeza de que você (ou o instalador) realmente criou a instância do PostgreSQL e iniciou o banco de dados?postgres
usuário. Resolvido o problema após instalar opostgresql-server
pacote.Respostas:
psql
: Faz o login com meu nome de usuário padrãopsql -U postgres
: Faz o meu login como o usuário postgresSudo não parece ser necessário para mim.
Eu uso Postgres.app para meu banco de dados OS X postgres. Ele removeu a dor de cabeça de ter certeza de que a instalação estava funcionando e que o servidor de banco de dados foi iniciado corretamente. Confira aqui: http://postgresapp.com
Edit: Crédito para @Erwin Brandstetter por corrigir meu uso dos argumentos.
fonte
psql postgres
epsql -d postgres
.Por
psql --help
, quando você não definiu opções para o nome do banco de dados (sem-d
opção), seria o seu nome de usuário, se você não fez-U
, o nome de usuário do banco de dados seria o seu nome de usuário também, etc.Mas por
initdb
(para criar o primeiro banco de dados) o comando não tem seu nome de usuário como qualquer nome de banco de dados. Ele tem um banco de dados chamadopostgres
. O primeiro banco de dados é sempre criado pelo comando initdb quando a área de armazenamento de dados é inicializada. Este banco de dados é denominado postgres.Portanto, se você não tiver outro banco de dados chamado seu nome de usuário, será necessário fazer
psql -d postgres
para que o comando psql funcione. E parece que dá-d
opção por padrão,psql postgres
também funciona.Se você criou outro nome de banco de dados igual ao seu nome de usuário (deve ser feito com
createdb
), então você podepsql
apenas comandar . E parece que o primeiro nome de usuário do banco de dados é definido como seu nome de usuário da máquina pelo brew.ou,
funcionaria por padrão.
fonte
OS X tende a prefixar os nomes das contas do sistema com "_"; você não diz qual versão do OS X está usando, mas pelo menos no 10.8 e 10.9 o usuário _postgres existe em uma instalação padrão. Observe que você não poderá acessar
su
esta conta (exceto como root), pois ela não possui uma senha.sudo -u _postgres
, por outro lado, deve funcionar bem.fonte
a discussão e a resposta aqui foram extremamente úteis para mim:
psql: FATAL: banco de dados "<usuário>" não existe
fonte
Funcionou bem para mim no caso do nome do banco de dados: postgres e nome de usuário: postgres. Portanto, você não precisa escrever sudo.
E no caso de outro banco de dados, você pode tentar
Como é fornecido na ajuda do Postgres:
fonte
$ psql -U postgres
gera saídapsql: FATAL: role "postgres" does not exist
, maspsql postgres
funciona.Recebo exatamente os mesmos erros que kryshah com
su - postgres
esudo -u postgres psql
. A resposta de DanielM também fornece erros.Saídas quando configurações erradas
No entanto, responda ao comentário de przbabu.
Acho que parte desse problema pode estar nas configurações do proprietário no OSX
mas fazer
sudo chown -R postgres:staff /Users/postgres
dáchown: invalid user: ‘postgres:staff’
.Em suma, esta não é a solução do problema. Use as ferramentas fornecidas pela instalação do postgres para criar um usuário e banco de dados.
Para obter as configurações e saídas corretas
Existem comandos específicos após a instalação do postgres para adicionar um novo usuário ao sistema de banco de dados. Após o initdb, execute o seguinte conforme descrito aqui
Para evitar a solicitação de senha o tempo todo, você tem três opções, conforme descrito aqui .
fonte
Para mim, essa foi a solução no macOS Reinstale o psql
Inicie o servidor PostgreSQL
Inicializar DB
Se este comando gerar um erro, rm o arquivo de banco de dados antigo e execute novamente o comando acima
Crie um novo banco de dados
Você estará logado neste banco de dados e pode criar um usuário aqui para fazer o login
fonte
A solução é simples:
faça login como root
e depois:
fonte