1.3. Criação de banco de dados #

O primeiro teste para verificar se é possível acessar o servidor de banco de dados é tentar criar um banco de dados. Um servidor PostgreSQL em execução pode gerenciar muitos bancos de dados. Normalmente é utilizado um banco de dados em separado para cada projeto ou para cada usuário.

É possível que o seu administrador já tenha criado um banco de dados para você. Nesse caso, esta etapa pode ser omitida e ir direto para a próxima seção.

Para criar um novo banco de dados a partir da linha de comando, chamado meu_bd nesse exemplo, deve ser utilizado o comando:

$ createdb meu_bd

Se esse comando não produzir resposta, esta etapa foi bem-sucedida e você pode pular o restante dessa seção.

Se aparecer uma mensagem semelhante a:

createdb: comando não encontrado

então o PostgreSQL não foi instalado da maneira correta. Ou ele não foi instalado, ou o caminho de procura não foi definido corretamente para incluí-lo. Tente executar o comando utilizando o caminho absoluto:

$ /usr/local/pgsql/bin/createdb meu_bd

O caminho na sua máquina pode ser diferente. [3] Fale com o administrador, ou verifique novamente as instruções de instalação para corrigir o comando.

Outra resposta pode ser esta:

createdb: erro: a conexão com o servidor no soquete "/tmp/.s.PGSQL.5432" falhou: Arquivo ou diretório inexistente
    O servidor está em execução localmente e aceitando conexões nesse soquete?

Significando que o servidor não foi iniciado, ou que não está escutando onde o createdb esperava encontrá-lo. Novamente, verifique as instruções de instalação ou consulte o administrador.

Outra resposta pode ser esta:

createdb: erro: a conexão com o servidor no soquete "/var/run/postgresql/.s.PGSQL.5432" falhou: FATAL:  role "halley" não existe

onde é mencionado o nome de seu login em vez de halley. Isso acontecerá se o administrador não tiver criado uma conta de usuário do PostgreSQL para seu uso (As contas de usuário do PostgreSQL são distintas das contas de usuário do sistema operacional). Se você for o administrador, obtenha ajuda para criar contas em Capítulo 21. Será necessário se tornar o usuário do sistema operacional que instalou o PostgreSQL (geralmente postgres) para criar a primeira conta de usuário. [4] Também pode ter sido atribuído para você um nome de usuário do PostgreSQL diferente do nome de usuário do sistema operacional; nesse caso, será necessário utilizar a opção -U, ou definir a variável de ambiente PGUSER, para especificar seu nome de usuário do PostgreSQL.

Se você tiver uma conta de usuário, mas essa conta não possuir o privilégio necessário para criar bancos de dados, será exibida a seguinte mensagem:

createdb: erro: criação do banco de dados falhou: ERRO:  permissão negada ao criar banco de dados

Nem todo usuário possui autorização para criar bancos de dados. Se o PostgreSQL se recusar a criar o banco de dados para você, então o administrador do banco de dados deverá conceder permissão para você criar bancos de dados. Consulte o administrador caso isso ocorra. Se você mesmo instalou o PostgreSQL, então você deverá se conectar ao PostgreSQL sob a mesma conta de usuário do sistema operacional utilizada para iniciar o servidor, para as finalidades desse tutorial. [5]

Também podem ser criados bancos de dados com outros nomes. O PostgreSQL permite a criação de qualquer número de bancos de dados em uma dada instalação. Os nomes dos bancos de dados devem ter o primeiro caractere alfabético, e limitados a um comprimento de 63 bytes. Uma escolha conveniente é criar o banco de dados com o mesmo nome do usuário corrente do sistema operacional. Muitas ferramentas assumem esse nome de banco de dados como o nome padrão, evitando a necessidade de digitá-lo. Para criar esse banco de dados deve ser digitado apenas:

$ createdb

Se não desejar mais utilizar um banco de dados, você poderá removê-lo. Por exemplo, se você for o dono (criador) do banco de dados meu_bd, poderá removê-lo utilizando o seguinte comando:

$ dropdb meu_bd

(Para esse comando o nome de usuário do sistema operacional não é utilizado como nome padrão do banco de dados: o nome deve ser sempre especificado.) Esta ação remove fisicamente todos os arquivos associados ao banco de dados não podendo ser desfeita, portanto esta operação somente deve ser feita após um longo período de reflexão.

Podem ser encontradas informações adicionais sobre os utilitários createdb e dropdb em createdb e dropdb, respectivamente.



[3] /usr/bin/createdb no Debian 12 e em outras distribuições do Linux. (N. T.)

[4] Para se tornar o usuário do sistema operacional postgres, pode ser usado o comando para substituir o usuário su, como em sudo su - postgres. (N. T.)

[5] Como uma explicação de por que isso funciona: os nomes de usuário do PostgreSQL são distintos das contas de usuário do sistema operacional. Ao se conectar com um banco de dados, você pode escolher o nome do usuário do PostgreSQL com o qual deseja fazer a conexão; se não especificar o usuário, o padrão é utilizar um nome igual ao da conta corrente do sistema operacional. Como isso ocorre, sempre existirá uma conta de usuário do PostgreSQL com nome igual ao do usuário do sistema operacional que iniciou o servidor, e esse usuário sempre tem permissão para criar banco de dados. Em vez de efetuar o login no sistema operacional como esse usuário, pode ser especificada a opção -U em todas as aplicações para escolher o nome do usuário do PostgreSQL com o qual se deseja conectar.