1.3. Criação de banco de dados

PostgreSQL 14.5: 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 pode gerenciar muitos bancos de dados. Normalmente é utilizado um banco de dados em separado para cada projeto ou para cada usuário.

Possivelmente, o administrador já criou um banco de dados para seu uso. Ele deve ter dito qual é o nome do seu banco de dados. Neste caso esta etapa pode ser omitida, indo-se direto para a próxima seção.

Para criar um novo banco de dados, chamado meu_bd neste exemplo, deve ser utilizado o comando:

$ createdb meu_bd

Que deve produzir a seguinte resposta:

CREATE DATABASE

Se esta resposta for mostrada então esta etapa foi bem sucedida, podendo-se pular o restante da 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 não foi instalado, ou o caminho de procura não foi definido corretamente. Tente executar o comando utilizando o caminho absoluto:

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

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

Outra resposta pode ser esta: [2]

createdb: could not connect to database template1:
could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

-- Tradução da mensagem (N. do T.)

createdb: não foi possível conectar com o banco de dados template1:
não foi possível conectar com o servidor: Arquivo ou diretório inexistente
          O servidor está executando localmente e aceitando conexões
          no soquete do domínio Unix "/tmp/.s.PGSQL.5432"?

Significando que o servidor não foi inicializado, ou que não foi inicializado onde o createdb esperava que fosse. Novamente, verifique as instruções de instalação ou consulte o administrador.

Outra resposta pode ser esta:

createdb: could not connect to database template1:
FATAL: user "joel" does not exist

-- Tradução da mensagem (N. do T.)

createdb: não foi possível conectar com o banco de dados template1:
FATAL: o usuário "joel" não existe

onde é mencionado o nome de seu login. Isto acontecerá se o administrador não tiver criado uma conta de usuário no 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 no Capítulo 17. 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. 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; neste caso, será necessário utilizar a chave -U, ou definir a variável de ambiente PGUSER, para especificar o nome de usuário do PostgreSQL.

Caso se possua uma conta de usuário, mas esta conta não possua o privilégio necessário para criar bancos de dados, será exibida a seguinte mensagem:

createdb: database creation failed:
ERROR: permission denied to create database

-- Tradução da mensagem (N. do T.)

createdb: a criação do banco de dados falhou:
ERRO: negada a permissão para 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, então o administrador do banco de dados deverá conceder permissão para você criar bancos de dados. Consulte o administrador caso isto ocorra. Caso tenha instalado o PostgreSQL por si próprio, então você deverá se conectar ao PostgreSQL sob a mesma conta de usuário do sistema operacional utilizada para inicializar o servidor, para as finalidades deste tutorial. [3]

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 instalação. Os nomes dos bancos de dados devem ter o primeiro caractere alfabético, sendo limitados a um comprimento de 63 caracteres. Uma escolha conveniente é criar o banco de dados com o mesmo nome do usuário corrente do sistema operacional. Muitas ferramentas assumem este nome de banco de dados como sendo o nome padrão, evitando a necessidade de digitá-lo. Para criar este banco de dados deve ser digitado simplesmente:

$ createdb

Se não desejar mais utilizar o seu 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 este comando o nome de usuário do sistema operacional não é utilizado como nome padrão do banco de dados: o nome sempre deve ser 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.

Notas

[1]

/usr/bin/createdb no RedHat, Fedora, Mandrake, Debian e SuSE. (N. do T.)

[2]

soquete — As chamadas de sistema para estabelecer a conexão são um tanto diferentes para o cliente e para o servidor, mas ambas envolvem basicamente a construção de um soquete. O soquete é uma extremidade do canal de comunicação entre processos. Cada um dos dois processos estabelece seu próprio soquete. Para criar o soquete, o programa precisa especificar o domínio de endereço e o tipo de soquete. Dois processos podem se comunicar somente se seus soquetes são do mesmo tipo e do mesmo domínio. Existem dois domínios de endereço amplamente utilizados: o domínio Unix, no qual dois processos compartilham um arquivo do sistema em comum para se comunicar; e o domínio Internet, no qual dois processos executando em dois hospedeiros quaisquer na Internet se comunicam. Cada um destes domínios possui seu próprio formato de endereço. O endereço de soquete do domínio Unix é uma cadeia de caracteres, que é basicamente uma entrada no sistema de arquivos. O endereço de soquete do domínio Internet consiste no endereço de Internet da máquina hospedeira (todo computador na Internet possui um endereço único de 32 bits, geralmente chamado de endereço de IP). Adicionalmente, no domínio Internet, cada soquete necessita do número da porta no hospedeiro. Sockets Tutorial (N. do T.)

[3]

Uma explicação do motivo pelo qual isto funciona: Os nomes de usuário do PostgreSQL são distintos das contas de usuário do sistema operacional. Ao estabelecer a conexão com um banco de dados, pode ser escolhido o nome do usuário do PostgreSQL com o qual se deseja fazer a conexão; Se isto não for feito, o padrão é utilizar um nome igual ao da conta atual do sistema operacional. Como isto ocorre, sempre existirá uma conta de usuário do PostgreSQL com nome igual ao do usuário do sistema operacional que inicializou o servidor; acontece, também, que este usuário sempre tem permissão para criar banco de dados. Em vez de conectar como este usuário, pode ser especificada a chave -U em todos os aplicativos para escolher o nome do usuário do PostgreSQL com o qual se deseja conectar.

SourceForge.net Logo CSS válido!