Como instalar o PostgreSQL 14 no Fedora 40 ou 39 Linux

PostgreSQL 14 é um sistema de gerenciamento de banco de dados relacional de código aberto conhecido por sua robustez, escalabilidade e amplo conjunto de recursos. Um dos principais recursos introduzidos no PostgreSQL 14 foi a capacidade de lidar com classificação incremental, o que melhorou significativamente o desempenho da consulta para cargas de trabalho específicas. Esta versão também aprimorou o processamento paralelo, a limpeza e o processamento JSON, tornando-a uma excelente opção para ambientes corporativos e de desenvolvimento. Embora esteja algumas versões atrás da versão mais recente, o PostgreSQL 14 continua sendo uma opção confiável e amplamente suportada.

Para instalar o PostgreSQL 14 no Fedora 40 ou 39 usando o terminal de linha de comando, você pode importar e instalar diretamente das compilações RPM do PostgreSQL. Este método garante que você tenha a versão mais recente e simplifica futuras atualizações.

Atualize o Fedora antes da instalação do PostgreSQL 14

Para começar, atualize seu sistema Fedora para garantir que todos os pacotes estejam atualizados. Esta etapa ajuda a evitar possíveis conflitos durante a instalação do PostgreSQL. Execute o comando abaixo:

sudo dnf update --refresh

Importar repositório de chaves PostgreSQL RPM GPG

Comece importando o repositório PostgreSQL. Esta ação garante acesso às versões mais recentes do PostgreSQL. Selecione e importe o repositório correspondente à sua versão do Fedora Linux.

Importar PostgreSQL 14

Nota: Lembre-se de importar a versão correta para a sua distribuição Fedora:

Para o Fedora 40, use este comando:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Para o Fedora 39, o comando é um pouco diferente:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Desativar módulo PostgreSQL padrão (se aplicável)

Os repositórios padrão do Fedora geralmente incluem PostgreSQL como módulo. Para priorizar a instalação do repositório PostgreSQL, é aconselhável desabilitar este módulo padrão. Use o seguinte comando para fazer isso:

sudo dnf -qy module disable postgresql

Finalizar a instalação do PostgreSQL 14

Prossiga com a instalação do PostgreSQL 14

.Use este comando para instalar o servidor PostgreSQL 14 e sua documentação:

sudo dnf install postgresql14-server postgresql14-docs -y

Além disso, você pode instalar o pacote de desenvolvimento da seguinte maneira.

sudo dnf install postgresql14-devel

Por último, você pode instalar alguns módulos, binários e bibliotecas adicionais de uso comum.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

Inicializar banco de dados PostgreSQL 14

Depois de instalado, você deve executar o seguinte comando para inicializar o banco de dados; não fazer isso impedirá o funcionamento do PostgreSQL.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Habilitar serviço PostgreSQL 14 Systemd

Por padrão, o PostgreSQL não está ativado. Use o seguinte comando para iniciar o serviço imediatamente e na inicialização do sistema.

sudo systemctl enable postgresql-14 --now

Verifique a instalação do PostgreSQL 14

Em seguida, verifique o status para garantir que o software esteja instalado e ativado sem erros usando o comando a seguir.

systemctl status postgresql-14

Comandos de serviço Systemd para PostgreSQL 14

Gerenciando o serviço PostgreSQL 14

O servidor de banco de dados PostgreSQL opera como um serviço systemd denominado “postgresql-14” no Fedora. Os administradores de sistema podem gerenciar este serviço usando um conjunto de comandos systemd vitais para manutenção de rotina e solução de problemas.

Parando o servidor PostgreSQL 14

Para interromper o serviço PostgreSQL, talvez para manutenção ou alterações de configuração, use este comando:

sudo systemctl stop postgresql-14

Iniciando o servidor PostgreSQL 14

Para iniciar o serviço PostgreSQL, especialmente após uma parada ou instalação inicial, use o seguinte comando:

sudo systemctl start postgresql-14

Reiniciando o servidor PostgreSQL 14

O comando restart é útil se você precisar aplicar novas configurações ou redefinir o serviço PostgreSQL. Ele para e inicia o serviço em uma ação:

sudo systemctl restart postgresql-14

Recarregando o servidor PostgreSQL 14

O comando reload é ideal para aplicar alterações de configuração sem parar o banco de dados. Atualiza o serviço sem interromper a operação do banco de dados:

sudo systemctl reload postgresql-14

Verificando o status do serviço PostgreSQL 14

Para verificar o status operacional do serviço PostgreSQL, use este comando. Ele fornece informações sobre o estado do serviço, incluindo se ele está ativo, inativo ou com problemas:

systemctl status postgresql-14

Configurar PostgreSQL 14

Mudando para a conta Postgres 14

Acessando a conta Postgres 14

Durante a instalação do PostgreSQL, uma conta de usuário chamada ‘postgres’ é criada automaticamente. Esta conta está associada à função padrão do Postgres, que possui privilégios de superusuário. Para acessar o banco de dados PostgreSQL, mude para a conta ‘postgres’ usando o comando:

sudo -i -u postgres

Entrando no prompt do PostgreSQL 14

Depois de mudar para o usuário ‘postgres’, acesse o prompt do PostgreSQL diretamente digitando psql. Após a conexão bem-sucedida, o prompt do terminal muda para postgres=#, indicando uma conexão ativa com o banco de dados.

Para sair do banco de dados PostgreSQL, basta digitar:

psql

Método alternativo para acessar o PostgreSQL 14

Usando Sudo para acesso direto

Como alternativa, interaja com o banco de dados PostgreSQL sem trocar de conta usando:

exit

Alternativa para mudar de conta Postgres

Uma forma alternativa de interagir com o banco de dados Postgres sem alterar as contas de usuário é usar um comando sudo para conectar-se diretamente. Você pode fazer isso digitando:

sudo -u postgres psql

Este comando é eficiente para interações rápidas com o banco de dados, pois ignora comandos adicionais do terminal.

Para sair, como no primeiro método, digite exit.

exit

Crie usuário e banco de dados com PostgreSQL 14

Criando uma nova função de usuário

Somente superusuários e funções com privilégio createrole podem criar novas funções. Para criar um usuário, use o comando:

sudo su - postgres -c "createuser <name>"

Substituir com o nome de usuário desejado.

Criando um novo banco de dados

A seguir, crie um banco de dados PostgreSQL para o usuário recém-criado:

sudo su - postgres -c "createdb <namedb>"

Substituir com o nome do banco de dados desejado.

Concessão de permissões

Para conceder permissões ao novo usuário no novo banco de dados, primeiro conecte-se ao banco de dados PostgreSQL como superusuário:

sudo -u postgres psql

Em seguida, conceda todos os privilégios ao novo usuário:

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Substituir com o nome do banco de dados e com o nome de usuário. Para sair, digite exit.

exit

Configurar Firewalld para PostgreSQL 14

Estabelecendo regras de Firewalld para PostgreSQL 14

Proteger o PostgreSQL envolve mais do que apenas instalar e executar o serviço; é crucial configurar os controles de acesso à rede de maneira eficaz. Isso protege o banco de dados e garante que apenas o tráfego legítimo chegue até ele. Veremos como configurar o firewalld, um gerenciador de firewall dinâmico no Fedora, para proteger o PostgreSQL.

Criando uma zona Firewalld para PostgreSQL

Primeiro, crie uma zona dedicada no firewalld para PostgreSQL. Esta abordagem permite um controle mais granular e clareza no gerenciamento de regras específicas do PostgreSQL:

sudo firewall-cmd --permanent --new-zone=postgres

Este comando estabelece uma zona 'postgres', isolando regras de firewall relacionadas ao PostgreSQL para facilitar o gerenciamento.

Restringindo o acesso a endereços IP conhecidos

Permitindo acesso de um único endereço IP

Para cenários onde apenas um cliente ou servidor deve acessar o PostgreSQL:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

Substitua 1.2.3.4 pelo endereço IP específico que requer acesso ao banco de dados.

Permitindo uma sub-rede

Em ambientes como redes corporativas, pode ser necessário permitir uma sub-rede inteira:

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

Aqui, 192.168.1.0/24 representa a sub-rede. Ajuste este valor para corresponder ao intervalo de rede desejado.

Concedendo acesso a vários IPs específicos

Para cenários com vários IPs conhecidos que requerem acesso:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

Repita este comando para cada endereço IP.

Gerenciando o acesso à porta para PostgreSQL 14

Configurando a porta PostgreSQL padrão

Para instalações padrão usando a porta padrão:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personalizando a configuração da porta

Se o PostgreSQL operar em uma porta não padrão (por exemplo, 5433):

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

Altere o número da porta de acordo com sua configuração específica do PostgreSQL.

Implementando e verificando as novas regras de firewall

Aplicando as mudanças

Para ativar as novas regras, recarregue o firewalld:

sudo firewall-cmd --reload

Esta etapa garante que as novas configurações entrem em vigor imediatamente.

Verificando as configurações

Após a configuração, é prudente revisar as regras definidas para a zona ‘postgres’:

sudo firewall-cmd --list-all --zone=postgres

Este comando exibe todas as regras ativas na zona 'postgres', permitindo a verificação do setup.exp

Configuração de acesso remoto para PostgreSQL 14

Configurando interfaces de escuta para acesso remoto

Modificando a configuração do PostgreSQL

Para habilitar o acesso remoto ao PostgreSQL, é necessário ajustar as configurações da interface no arquivo postgresql.conf. Este processo permite que o PostgreSQL aceite conexões de várias fontes.

Certifique-se de que as configurações do FirewallD estejam em vigor para permitir o acesso remoto, conforme descrito nas seções anteriores.

Acessando o arquivo de configuração

Para modificar a configuração do PostgreSQL 14, use o editor de texto nano:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Editando o endereço de escuta

Na seção “Configurações de conexão”, altere listen_addresses de ‘localhost’ de acordo com seus requisitos:

  • Ouvir em todas as interfaces: para aceitar conexões de qualquer fonte, defina listen_addresses como '*'.
listen_addresses = '*'
  • Ouvir em uma interface específica: Especifique um endereço IP para restringir conexões a uma interface específica.
listen_addresses = '192.168.1.100'

Após a edição, salve o arquivo (Ctrl + O, depois Enter) e saia (Ctrl + X).

Reiniciando o serviço PostgreSQL 14

Aplique as alterações reiniciando o serviço PostgreSQL:

sudo systemctl restart postgresql-14

Confirmando portas de escuta

Use o utilitário ss para verificar se o PostgreSQL está escutando nas portas especificadas:

ss -nlt | grep 5432

Se for bem-sucedido, você deverá ver as portas na porta do seu terminal.

Configurações avançadas de conexão remota em pg_hba.conf

Adaptando o acesso no arquivo pg_hba.conf

Para controle refinado sobre conexões remotas, o arquivo pg_hba.conf oferece várias opções de personalização.

Editando pg_hba.conf

Abra o arquivo pg_hba.conf:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Arquivo de configuração pg_hba para PostgreSQL 14 no Fedora Linux
Captura de tela de exemplo do arquivo de configuração pg_hba para PostgreSQL 14 no Fedora Linux
Configurando regras de acesso remoto
Permitindo usuários e bancos de dados específicos

Para limitar o acesso a um usuário e banco de dados específicos a partir de um endereço IP específico:

hospedar meu banco de dados meu usuário 192.168.1.100/32 md5
Permitindo uma sub-rede

Para acesso mais amplo, como uma sub-rede inteira:

hospedar todos os 192.168.1.0/24 md5
Usando diferentes métodos de autenticação

Escolha um método de autenticação adequado ao seu ambiente. Para autenticação baseada em senha:

hospedar todos todos 0.0.0.0/0 md5

Para autenticação confiável (observe os riscos de segurança):

hospedar todos todos 0.0.0.0/0 confiança

Após configurar as regras desejadas, salve e saia do editor.

Aplicando e verificando alterações

Reinicie o PostgreSQL para implementar as novas configurações:

sudo systemctl restart postgresql-14

Verifique as configurações efetivas em pg_hba.conf usando:

cat /var/lib/pgsql/14/data/pg_hba.conf

Configurar SELinux para PostgreSQL 14

Ao configurar o PostgreSQL 14 no Fedora, é essencial configurar o SELinux (Security-Enhanced Linux) corretamente. SELinux adiciona uma camada de segurança ao impor políticas de controle de acesso. A configuração incorreta pode levar a problemas comuns, como negações de acesso ou interrupções de serviço.

Configurando o SELinux para modo permissivo para solução de problemas

Ajustando temporariamente o modo SELinux

Se você encontrar problemas com o PostgreSQL iniciando ou funcionando corretamente, considere configurar temporariamente o SELinux para o modo ‘Permissivo’. Este modo permite operações que seriam bloqueadas no modo 'Aplicar', mas registrá-las para revisão:

sudo setenforce 0

Logs de monitoramento para negações de AVC

Verifique os logs do SELinux para negações de AVC (Access Vector Cache):

sudo restorecon -Rv /var/lib/pgsql/14/data/

Este comando ajuda a identificar as políticas do SELinux que impedem o funcionamento correto do PostgreSQL.

Configurando políticas SELinux para PostgreSQL 14

Restaurando o contexto padrão do SELinux

Para garantir que os arquivos tenham o contexto SELinux correto, use o comando restorecon. Contextos incorretos em diretórios ou arquivos PostgreSQL podem causar problemas de acesso:

sudo setsebool -P postgresql_can_rnetwork 1

Este comando habilita o booleano postgresql_can_rnetwork, permitindo conexões de rede.

Configuração avançada do SELinux

Personalizando Políticas SELinux

Em configurações mais complexas, como quando o PostgreSQL interage com outros serviços ou portas personalizadas, pode ser necessária a criação de políticas SELinux personalizadas. Utilize a ferramenta audit2allow para gerar módulos de política personalizados com base em necessidades específicas.

Aplicando políticas personalizadas

Depois de criar políticas personalizadas, aplique-as usando:

sudo semodule -i my_postgresql.pp

Substitua my_postgresql.pp pelo nome do seu arquivo de política.

Verificando as configurações do SELinux

Verificando o status do SELinux

Confirme o status do SELinux para garantir que ele esteja configurado corretamente para a instalação do PostgreSQL:

sestatus

Validando Contextos de Arquivo

Verifique se os arquivos e diretórios relacionados ao PostgreSQL possuem os contextos SELinux apropriados:

ls -Z /var/lib/pgsql/14/data/

Conclusão

Com o PostgreSQL 14 instalado com sucesso em seu sistema Fedora, você pode aproveitar seus recursos avançados e desempenho robusto para as necessidades de seu banco de dados. Verifique regularmente se há atualizações e upgrades futuros das compilações RPM do PostgreSQL para manter seu sistema atualizado.

Para obter mais informações sobre como usar o PostgreSQL, visite o site oficial documentação.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário