Alterando a porta do PostgreSQL usando a linha de comando

Minha porta padrão do PostgreSQL é 5432, desejo alterar a porta padrão usando a linha de comando (no Windows 7).

Já vi esta solução antes: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Tentei executar o seguinte comando, mas falhou:

 postgres --p 5431  

Alguém poderia me dizer como alterar a porta está usando a linha de comando?

Resposta

Já que você está no Windows e provavelmente está iniciando o PostgreSQL como um serviço do Windows, você ” Precisarei editar postgresql.conf (dentro de seu diretório de dados) para definir a nova porta lá e, em seguida, reiniciar o serviço postgresql usando o painel de controle dos Serviços ou (como administrador) o net service.

Você pode usar uma ferramenta de edição de texto programática para alterar postgresql.conf se precisar automatizar isso. Em uma caixa Linux / Unix, você “pode usar uma ferramenta como sed ou awk, mas no Windows eu imagino que você” usará VBS , PowerShell ou uma ferramenta complementar como Perl.

Você precisará alterar as configurações de conexão em ferramentas como PgAdmin-III para usar a nova porta.

Se você estivesse iniciando o PostgreSQL manualmente usando pg_ctl, você poderia definir a variável de ambiente PGPORT ou passar uma opção de configuração no linha de comando. Isso não funcionará quando você o lançar novamente como um serviço do Windows.

Comentários

  • I ' m usando " Swiss File Knife " para fazer a substituição em arquivos de texto no Windows.
  • @a_horse_with_no_name Ferramenta útil quando você ' não tem fileutils / coreutils / etc; obrigado pela dica.
  • Então, eu posso ' não usa a linha de comando para alterar a porta pgsql no Windows?
  • @NickHung Sim, você pode, conforme explicado acima – usar um processador de texto para alterar o arquivo de configuração ou não ' executar o PostgreSQL como um serviço do Windows e iniciá-lo com pg_ctl.

Resposta

  • vá para .. \ PostgreSQL \ 9.0 \ data e abra o arquivo postgresql.conf no editor de texto / notepad
  • pesquise o parâmetro de porta .eg: port = 5433
  • edite para o seu número de porta.
  • vá para executar o tipo services.msc e reinicie o serviço postgresql.

você pode verificar se o parâmetro está definido ou não por meio da ferramenta de consulta. basta executar a consulta show port. ele exibirá seu número de porta atual. Se estiver usando o pgAdmin para se conectar ao banco de dados, certifique-se de alterar o número da porta nas configurações de conexão.

Resposta

Uma solução que faz não requer nenhuma substituição de texto ou técnicas semelhantes é configurar a porta diferente em um arquivo de configuração separado e, em seguida, anexar uma diretiva de inclusão ao arquivo postgresql.conf.

por exemplo,

 echo port = 5431 > \path\to\datadir\custom.conf echo include custom.conf>> \path\to\datadir\postgresql.conf  

(Claro \path\to\datadir\ precisa ser substituído pelo caminho correto)

O primeiro echo comando cria um novo arquivo com apenas a configuração da porta. O segundo anexa uma diretiva de inclusão ao arquivo de configuração postgres existente. Como as configurações “posteriores” substituem as configurações “anteriores” no arquivo, qualquer configuração de porta feita em postgresql.conf será substituída pela do arquivo de configuração personalizado.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *