Estou configurando meu PostgreSQL 9.1. Não posso fazer nada com o PostgreSQL: não createdb
posso, não posso createuser
; todas as operações retornam a mensagem de erro
Fatal: role h9uest does not exist
h9uest
é o nome da minha conta e eu sudo apt-get install
PostgreSQL 9.1 nesta conta.
Erro semelhante persiste para a root
conta.
postgresql
authentication
h9uest
fonte
fonte
FATAL: role "user" is not permitted to log in
, verifique dba.stackexchange.com/questions/57723/… para isso.role doesn't exist
eo errocan't create role, it already exists
confira esta resposta: stackoverflow.com/a/56658832/1689770Respostas:
Use o usuário do sistema operacional
postgres
para criar seu banco de dados - desde que você não tenha configurado uma função de banco de dados com os privilégios necessários que correspondam ao usuário do sistema operacional com o mesmo nome (h9uest
no seu caso):Como recomendado aqui ou aqui .
Então tente novamente. Digite
exit
quando terminar de operar como usuário do sistemapostgres
.Ou execute o comando único
createuser
comopostgres
emsudo
, como demonstrado por drees em outra resposta.O objetivo é usar o usuário do sistema operacional que corresponda à função de banco de dados com o mesmo nome para obter acesso via
ident
autenticação .postgres
é o usuário padrão do sistema operacional que inicializou o cluster do banco de dados. O manual:Ouvi falar de configurações ímpares com nomes de usuário não padrão ou onde o usuário do sistema operacional não existe. Você precisaria adaptar sua estratégia lá.
Leia sobre funções de banco de dados e autenticação de cliente no manual.
fonte
sudo etc
como usuário postgres ... Como instalar um programa? Veja este problema de instalação do S2geometry .su postgres
.sudo -u postgres
não funciona, enquantosudo -u postgres -i
funciona! O que a-i
bandeira faz?su
, mas com base nos privilégios do sudo. Vejaman sudo
.Depois de tentar as soluções de muitas outras pessoas, e sem sucesso, essa resposta finalmente me ajudou.
https://stackoverflow.com/a/16974197/2433309
Em suma, executando
cria uma função com o nome owning_user (neste caso, h9uest). Depois disso, você pode executar a
rake db:create
partir do terminal com qualquer nome de conta configurado sem precisar entrar no ambiente do Postgres.fonte
-s
, e não precisava usarsudo -u postgres
(createuser new_user
funcionou bem) #psql: FATAL: role "jonny" does not exist
ok entãosudo -u postgres -s createuser jonny
então por quecreateuser: creation of new role failed: ERROR: role "jonny" already exists
criando função no pgsql com privilégio de "superusuário"
Então crie usuário
Atribuir privilégio ao usuário
E, em seguida, ative o login desse usuário, para que você possa executar, por exemplo
psql template1
:, do$
terminal normal :fonte
CREATE ROLE username superuser createdb login;
que combina todas as três etapas ...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
#GRANT postgres TO username
A instalação do postgres usando
apt-get
não cria uma função de usuário ou um banco de dados.Para criar uma função de superusuário e um banco de dados para sua conta de usuário pessoal:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
fonte
sudo -u postgres createdb $(whoami)
-s
bandeira no primeiro comando), você pode criar o banco de dados como você. Você não precisará executarcreatedb
comopostgres
.Isso funciona para mim:
fonte
postgres
(testada no Linux e Windows).role postgres does not exist
Método de trabalho,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
aqui alterar pares de confiançareiniciar,
sudo service postgresql restart
agora tente,
psql -U postgres
fonte
trust
método só é aconselhável em um ambiente completamente seguro. Embora o acesso a partir de conexões não confiáveis seja possível, nunca exponha seu cluster de banco de dados dessa maneira.pg_hba.conf
Para a versão Postgres 9.5, use o seguinte comando:
Espero que isso ajude.
fonte
fonte
psql postgres
resultados:psql: FATAL: role "root" does not exist
psql postgres -U postgres
? Depende do usuário (-U) que você possui.No prompt do usuário local, não no prompt do usuário raiz, digite
Em seguida, digite a senha do usuário local.
Em seguida, insira o comando anterior que gerou "a função 'nome de usuário' não existe".
As etapas acima resolveram o problema para mim. Caso contrário, envie mensagens do terminal para as etapas acima.
fonte
Instalei-o no macOS e tive que:
Aqui está a fonte: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
fonte
A criação manual de um cluster de banco de dados resolveu-o no meu caso.
Por alguma razão, quando instalei o postgres, o "banco de dados inicial" não foi criado. A execução
initdb
fez o truque para mim.Esta solução é fornecida no Wiki do PostgreSQL - Primeiros passos :
fonte
Para usuários do Windows :
psql -U postgres
Você deve ver a interface da linha de comandos para o PostgreSQL:
postgres=#
fonte
Siga estas etapas e funcionará para você:
msfconsole
db_connect user:pass@host:port.../database
desculpe, eu não me lembro, mas é como essa, substitua o usuário e a senha, o host e o banco de dados pelas informações incluídas nodatabase.yml
local :/usr/share/metasploit-framework/config
msfconsole: msf>db_status
, verá que está conectado.fonte
despejar e restaurar com
--no-owner --no-privileges
sinalizadorespor exemplo
despejo -
pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
restore -
pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
fonte