Acabei de instalar o postgresql e especifiquei a senha x durante a instalação. Quando tento fazer createdb
e especificar qualquer senha, recebo a mensagem:
createdb: não foi possível conectar-se ao banco de dados postgres: FATAL: falha na autenticação da senha do usuário
O mesmo para createuser
.
Como devo começar? Posso me adicionar como usuário ao banco de dados?
linux
database
postgresql
configuration
Rohit Banga
fonte
fonte
postgres
usuário. É oSU
PostgreSQL, e você abre para ataques de login contra ele. Crie outro superusuário e reserve o bloqueadopostgres
para administradores UNIX com root.Respostas:
As outras respostas não foram completamente satisfatórias para mim. Aqui está o que funcionou para o postgresql-9.1 no Xubuntu 12.04.1 LTS.
Conecte-se ao banco de dados padrão com o usuário postgres:
Defina a senha para o usuário postgres e saia do psql (Ctrl-D):
Edite o
pg_hba.conf
arquivo:e mude "peer" para "md5" na linha referente ao postgres:
Para saber em qual versão do postgresql você está executando, procure a pasta version em
/etc/postgresql
. Além disso, você pode usar o Nano ou outro editor em vez do VIM.Reinicie o banco de dados:
(Aqui você pode verificar se funcionou
psql -U postgres
).Crie um usuário com o mesmo nome que você (para encontrá-lo, você pode digitar
whoami
):As opções dizem ao postgresql para criar um usuário que possa efetuar login, criar bancos de dados, criar novas funções, seja um superusuário e terá uma senha criptografada. Os realmente importantes são -P -E, para que você seja solicitado a digitar a senha que será criptografada e -d para que você possa fazer um
createdb
.Cuidado com as senhas : ele primeiro solicitará o dobro da nova senha (para o novo usuário), repetida e depois a senha do postgres (a especificada na etapa 2).
Novamente, edite o
pg_hba.conf
arquivo (consulte a etapa 3 acima) e altere "peer" para "md5" na linha referente a "todos" outros usuários:Reinicie (como na etapa 4) e verifique se você pode fazer login sem -U postgres:
Observe que, se você fizer um mero
psql
, ele falhará, pois tentará conectá-lo a um banco de dados padrão com o mesmo nome que você (por exemplowhoami
). template1 é o banco de dados do administrador que está aqui desde o início.Agora
createdb <dbname>
deve funcionar.fonte
pg_hba.conf
deve ser a primeira linha, caso contrário, poderá ser ignorada por causa de outras regras (pgsql 9.3.5 em F21). Levei algum tempo para descobrir isso, que as linhas de comentários e alterações já comentadas para o usuário do postgresql não serão suficientes.local all all peer
no ponto 3 para o qual eu mudei agoramd5
. OK?No Linux, o PostgresQL geralmente é configurado para permitir que o usuário root efetue login como superusuário
postgres
do postgres a partir do shell (console ou ssh).Então você apenas criaria um novo banco de dados, como de costume:
Isso deve funcionar sem tocar
pg_hba.conf
. Se você quiser fazer isso usando alguma ferramenta da GUI na rede - precisará mexerpg_hba.conf
.fonte
psql: FATAL: Peer authentication failed for user "postgres"
mesmo com sudo.psql -d mydatatabase -U myuser
.Esta é a minha solução:
fonte
sudo bash
.Existem dois métodos que você pode usar. Ambos exigem a criação de um usuário e um banco de dados.
Usando createuser e createdb ,
Usando os comandos de administração SQL e conectando-se com uma senha sobre TCP
E, então, no shell psql
Então você pode fazer o login,
Se você não conhece a porta, sempre pode obtê-la executando o seguinte, como o
postgres
usuário,Ou,
Sidenote: o
postgres
usuárioSugiro NÃO modificar o
postgres
usuário.postgres
. Você deveria ter root para se autenticar comopostgres
.postgres
o equivalente do PostgreSQL ao SQL ServerSA
, é necessário ter acesso de gravação aos arquivos de dados subjacentes. E isso significa que você normalmente pode causar estragos de qualquer maneira.fonte
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
faz do usuário um superusuário.EDIT: Aviso: Por favor, leia a resposta postada por Evan Carroll . Parece que esta solução não é segura e não é recomendada.
Isso funcionou para mim na instalação padrão do Ubuntu 14.04 64 bits .
Segui as instruções, com pequenas modificações, encontradas em http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
Para:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
fonte
postgres
usuário é uma má ideia. stackoverflow.com/a/41604969/124486fonte
Você provavelmente precisa atualizar seu
pg_hba.conf
arquivo. Este arquivo controla quais usuários podem efetuar login a partir de quais endereços IP. Eu acho que o usuário do postgres é bastante bloqueado por padrão.fonte
/var/lib/pgsql/data/pg_hba.conf
. Mudeident
paratrust
forhost
(elocal
se você estiver usando ssh).Se você estiver executando o macOS como eu, talvez não tenha o usuário do postgres.
Ao tentar executar
sudo -u postgres psql
, estava recebendo o errosudo: unknown user: postgres
Felizmente, existem executáveis que o postgres fornece.
Então, consegui acessar
psql
sem problemas.Se você estiver criando uma nova instância do postgres do zero, aqui estão as etapas que eu segui. Usei uma porta não padrão para poder executar duas instâncias.
Depois editei
/var/postgres/var-10-local/postgresql.conf
com minha porta preferida, 5433.Feito!
fonte
No MacOS, segui as etapas abaixo para fazê-lo funcionar.
Pela primeira vez, após a instalação, obtenha o nome de usuário do sistema.
Agora que você efetuou login no sistema, pode criar o banco de dados.
fonte
Basta navegar até o diretório da instalação e executar este arquivo "pg_env.bat"; então, vá para a pasta bin e execute o arquivo pgAdmin.exe. Isso deve funcionar sem dúvida!
fonte