Sou um iniciante em PostgreSQL e estou seguindo uma introdução aos bancos de dados para configurar um banco de dados PostgreSQL local e conectar-me a ele. Estou executando o Debian 15, então faço o seguinte:
# apt update
# apt install postgresql
A instalação foi bem-sucedida. Eu então faço:
sudo -u postgres psql
psql (15.7 (Debian 15.7-0+deb12u1))
Type "help" for help.
postgres=# \l
postgres=# createdb prismatest
postgres-# \l
postgres-# \c prismatest
connection to server on socket "/var/run/postgresql/.s.PGSQL.5433" failed: FATAL: database "prismatest" does not exist
Previous connection kept
Portanto, a lista de bancos de dados não mostra nada e não é possível conectar-se ao banco de dados - supostamente - recém-criado. Meu usuário tem os direitos:
postgres-# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
Alguém pode me ajudar a descobrir o que está acontecendo? Obrigado...
Observe como o prompt mudou da primeira linha para a segunda:
O psql está sugerindo que você está inserindo mais linhas do mesmo comando.
Insira o ponto e vírgula (";") que encerra a instrução de criação de banco de dados.
Existem duas maneiras diferentes de criar um banco de dados no PostgreSQL. Um é da linha de comando. A outra é do console do PostgreSQL.
Linha de comando
Para poder criar um banco de dados a partir da linha de comando, você deve primeiro mudar para um usuário com direitos para criar um banco de dados. Como você mostrou com o comando \du acima, o usuário com esses direitos é postgres.
Como você pode ver, o comando createdb não fornece nenhum feedback. Você precisa confirmar a criação listando os bancos de dados atuais:
Console PostgreSQL
Outra possibilidade é usar o console PostgreSQL. Para entrar no console:
root@eric-desktop:/home/eric# sudo -u postgres psql psql (15.7 (Debian 15.7-0+deb12u1)) Digite "help" para obter ajuda.
Para confirmar a criação do banco de dados, liste os bancos de dados: