Estou trabalhando com uma nova instalação do postgresql, com superusuário 'postgres'. Conectado via:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
Sem erros, ainda a tabela não está sendo criada. Alguma ideia?
postgresql
psql
Damien Roche
fonte
fonte
Respostas:
createdb
é um utilitário de linha de comando que pode ser executado no bash e não no psql. Para criar um banco de dados a partir do psql , use acreate database
instrução assim:Nota: certifique-se de sempre terminar suas instruções SQL com
;
fonte
;
Atrasado para a festa, mas a resposta aceita não explica por que nenhum erro foi exibido. E como isso é algo que os recém-chegados do Postgres frequentemente tropeçam, eu queria acrescentar isso.
TL / TR: sempre termine suas instruções SQL com
;
Porque
createdb database
não terminou com;
psql
pensa que a instrução não foi concluída e aguarda mais entrada. Isso é indicado pelo prompt mudando depostgres=#
parapostgres-#
. Uma mudança extremamente sutil que eu gostaria quepsql
fosse feita de forma diferente (mais "proeminente").Ao inserir o meta-comando,
\list
a instrução SQL "atual" é "abortada" sem executá-la.Se o
createdb
tivesse terminado com um,;
a saída teria sido:Mostrando claramente que algo estava errado.
fonte
createdb
não é válido. Mas repetir exatamente o mesmo comando com emcreate database
vez decreatedb
junto com um ponto-e-vírgula funciona perfeitamente.Eu estava nessa situação há não muito tempo. Caso outra pessoa experimente isso, considerando que o prompt de comando mostra que
postgres-#
você pode executar o comando createdb pendente simplesmente digitando;
e a tecla Enter.fonte
Criar uma nova base de dados no PostgreSQL é muito simples, execute este comando no Linux (exemplo CentOS 7):
fonte
Usando um terminal de nó, tive que executar:
[coloque sua senha]
então ...
O que é confuso é que eu digitei esses mesmos comandos antes e não funcionou. Só depois de fazer logout e login novamente, pude usar este comando padrão da documentação: https://www.postgresql.org/docs/10/tutorial-createdb.html
fonte