initdb

Name

initdb -- cria um novo agrupamento de bancos de dados do PostgreSQL

Synopsis

initdb --pgdata | -D diretório [--username | -U nome_do_usuário] [--pwprompt | -W] [--encoding | -E codificação] [-L diretório] [--noclean | -n] [--debug | -d]

Descrição

O initdb cria um novo agrupamento de bancos de dados do PostgreSQL (ou sistema de bancos de dados). Um agrupamento de bancos de dados é uma coleção de bancos de dados que são gerenciados por uma única instância do servidor.

Criar um sistema de banco de dados consiste em criar os diretórios onde os dados dos bancos de dados vão residir, gerar as tabelas do catálogo compartilhado (tabelas que pertencem ao agrupamento como um todo e não a algum banco de dados em particular) e criar o banco de dados template1. Quando um novo banco de dados é criado, tudo que existe no banco de dados template1 é copiado. Este banco de dados contém tabelas do catálogo preenchidas com dados como os tipos de dado primitivos.

O initdb deve ser executado pelo mesmo usuário do processo servidor, porque o servidor necessita ter acesso aos arquivos e diretórios criados pelo initdb. Como o servidor não deve ser executado como root, também não se deve executar o initdb como root (Na verdade, este vai se recusar a fazê-lo).

Embora o initdb tente criar o diretório de dados especificado, muitas vezes não terá permissão para fazê-lo, porque este diretório geralmente está sob um diretório que pertence ao root. Para resolver uma situação como esta, deve-se criar um diretório de dados vazio como root, depois usar o comando chown para mudar o dono deste diretório para o usuário do banco de dados, em seguida executar su para se tornar o usuário do banco de dados e, finalmente, executar initdb como o usuário do banco de dados.

Opções

--pgdata=diretório
-D diretório

Esta opção especifica o diretório onde o sistema de banco de dados deve ser armazenado. Esta é a única informação requerida pelo initdb, mas pode ser evitado escrevê-la definindo a variável de ambiente PGDATA, o que é conveniente porque, depois, o servidor de banco de dados (postmaster) poderá localizar o diretório dos bancos de dados usando a mesma variável.

--username=nome_do_usuário
-U nome_do_usuário

Especifica o nome do superusuário do banco de dados. Por padrão o nome do usuário efetivo executando o initdb. Não importa realmente qual é o nome do superusuário, mas deve-se preferir manter o nome costumeiro "postgres", mesmo que o nome do usuário do sistema operacional seja diferente.

--pwprompt
-W

Faz o initdb solicitar a senha a ser dada ao superusuário do banco de dados. Se não se pretende usar autenticação por senha, isto não tem importância. Senão, não será possível usar autenticação por senha enquanto não houver uma senha definida.

--encoding=codificação
-E codificação

Seleciona a codificação do banco de dados de gabarito. Será também a codificação padrão para todos os bancos de dados que vierem a ser criados, a menos que seja substituída por uma outra. Para que a funcionalidade de codificação possa ser usada, esta deve ter sido habilitada em tempo de compilação, quando também pode ser selecionado o valor padrão para esta opção.

Outros parâmetros, menos utilizados, também estão disponíveis:

-L diretório

Especifica onde o initdb deve encontrar os seus arquivos de entrada para inicializar o sistema de banco de dados. Normalmente não é necessário. Se for necessário especificar a localização será informado explicitamente.

--noclean
-n

Por padrão, quando o initdb determina que um erro impediu a criação completa do sistema de bancos de dados, são removidos todos os arquivos porventura criados antes de ser descoberto que não era possível terminar o trabalho. Esta opção impede a limpeza e, portanto, é útil para a depuração.

--debug
-d

Exibe saída de depuração do servidor de bootstrap e algumas outras mensagens de menor interesse para o público em geral. O servidor de bootstrap é o programa que o initdb utiliza para criar as tabelas do catálogo. Esta opção gera uma quantidade tremenda de saída extremamente entediante.

Ambiente

PGDATA

Especifica o diretório onde o sistema de bancos de dados deve ser armazenado; pode ser substituído usando a opção -D.

Consulte também

postgres, postmaster, Guia do Administrador do PostgreSQL