Instalação e Configuração Inicial do PostgreSQL

PostgreSQLBeginner
Pratique Agora

Introdução

Neste laboratório, instalaremos e realizaremos a configuração inicial do PostgreSQL na VM do LabEx. O objetivo é colocar o PostgreSQL em funcionamento e verificar sua funcionalidade básica.

Começaremos atualizando as listas de pacotes e instalando o servidor PostgreSQL junto com o pacote postgresql-contrib. Após a instalação, verificaremos se o serviço do PostgreSQL está em execução e aceitando conexões usando o comando pg_isready. Por fim, exploraremos os bancos de dados padrão e verificaremos o status do servidor e as configurações básicas.

Instalar o PostgreSQL e Verificar a Instalação

Nesta etapa, instalaremos o PostgreSQL na VM do LabEx e verificaremos se a instalação foi bem-sucedida. O PostgreSQL é um poderoso sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto.

Primeiro, vamos atualizar as listas de pacotes para atualizações e novas instalações. Abra um terminal na VM do LabEx. Você pode encontrar o ícone do terminal na área de trabalho.

Execute o seguinte comando:

sudo apt update

Este comando atualiza a lista de pacotes disponíveis e suas versões, mas não instala nem atualiza nenhum pacote. Você deverá ver uma saída indicando que as listas de pacotes estão sendo atualizadas.

Em seguida, instale o servidor PostgreSQL e o pacote postgresql-contrib. O pacote postgresql-contrib fornece utilitários e funcionalidades adicionais que são frequentemente úteis.

Execute o seguinte comando:

sudo apt install postgresql postgresql-contrib -y

Saída da instalação do PostgreSQL

A flag -y responde automaticamente "yes" (sim) a quaisquer prompts durante o processo de instalação. Este comando fará o download e a instalação do PostgreSQL e seus pacotes relacionados. Você verá muitas informações na tela à medida que os pacotes são baixados e instalados.

Após a conclusão da instalação, precisamos verificar se o PostgreSQL está em execução. O PostgreSQL deve iniciar automaticamente após a instalação.

Para verificar o status do serviço do PostgreSQL, execute o seguinte comando:

sudo service postgresql status

Também podemos usar o comando pg_isready para verificar se o servidor PostgreSQL está em execução e aceitando conexões.

Execute o seguinte comando:

pg_isready

Se o PostgreSQL estiver em execução, você deverá ver a seguinte saída:

/var/run/postgresql:5432 - accepting connections

Se o PostgreSQL não estiver em execução, você poderá ver uma mensagem de erro como:

/var/run/postgresql:5432 - no response

Se você encontrar o erro "no response", tente reiniciar o serviço do PostgreSQL. Você pode tentar o seguinte comando:

sudo service postgresql restart

Em seguida, execute pg_isready novamente para verificar o status.

Saída do comando pg_isready mostrando instalação bem-sucedida

Se o pg_isready mostrar "accepting connections", isso confirma que o PostgreSQL foi instalado com sucesso e está em execução.

Acessar o Shell do PostgreSQL (psql)

Nesta etapa, acessaremos o shell do PostgreSQL, psql, que é uma ferramenta de linha de comando para interagir com bancos de dados PostgreSQL. O psql permite que você execute consultas SQL, gerencie bancos de dados e realize outras tarefas administrativas.

Por padrão, o PostgreSQL cria um usuário Unix chamado postgres que corresponde ao superusuário do PostgreSQL. Para acessar o shell psql, você pode alternar para o usuário postgres ou usar sudo para executar comandos como o usuário postgres.

Primeiro, vamos alternar para o usuário postgres. Execute o seguinte comando:

sudo -i -u postgres

Este comando alterna o usuário atual para postgres. Você notará que o prompt muda para refletir o novo usuário.

Agora que você está logado como o usuário postgres, você pode acessar o shell psql. Execute o seguinte comando:

psql

Este comando abrirá o shell psql. Você deverá ver um prompt parecido com este:

postgres=#

Isso indica que você está conectado ao servidor PostgreSQL e agora pode executar comandos SQL.

Para sair do shell psql, digite \q e pressione Enter:

postgres=## \q

Isso retornará você ao shell do usuário postgres.

Para sair do shell do usuário postgres e retornar ao seu usuário original (labex), digite exit e pressione Enter:

exit

Alternativamente, você pode acessar o shell psql diretamente como o usuário labex usando sudo. Isso evita a necessidade de alternar de usuário.

Exemplo de execução do comando psql

Execute o seguinte comando:

sudo -u postgres psql

Este comando executa o comando psql como o usuário postgres. Você será conectado diretamente ao shell psql.

Novamente, para sair do shell psql, digite \q e pressione Enter:

postgres=## \q

Isso retornará você ao shell do usuário labex.

Em resumo, você aprendeu duas maneiras de acessar o shell psql: alternando para o usuário postgres e usando sudo. Ambos os métodos alcançam o mesmo resultado, mas usar sudo pode ser mais conveniente em alguns casos.

Explorar Bancos de Dados Padrão

Nesta etapa, exploraremos os bancos de dados padrão que são criados quando você instala o PostgreSQL. Esses bancos de dados fornecem funcionalidades essenciais e informações sobre o servidor PostgreSQL.

Primeiro, acesse o shell psql como o usuário postgres. Você pode usar o seguinte comando:

sudo -u postgres psql

Uma vez no shell psql, você pode listar os bancos de dados disponíveis usando o comando \l. Execute o seguinte comando:

postgres=## \l

Este comando exibirá uma lista de bancos de dados, juntamente com informações sobre seus proprietários, codificações e privilégios de acesso. Você deve ver pelo menos três bancos de dados:

  • postgres: Este é o banco de dados padrão ao qual você se conecta quando acessa o shell psql pela primeira vez. É frequentemente usado para tarefas administrativas.
  • template0: Este banco de dados é usado como modelo para criar novos bancos de dados. Você não deve modificar este banco de dados.
  • template1: Este é outro banco de dados modelo usado para criar novos bancos de dados. É um modelo padrão e pode ser personalizado.

Lista de bancos de dados PostgreSQL disponíveis

Para se conectar a um banco de dados específico, você pode usar o comando \c seguido pelo nome do banco de dados. Por exemplo, para se conectar ao banco de dados postgres, execute o seguinte comando:

postgres=## \c postgres

Você deverá ver uma mensagem indicando que agora está conectado ao banco de dados postgres:

You are now connected to database "postgres" as user "postgres".

Agora que você está conectado ao banco de dados postgres, pode explorar seu conteúdo. Por exemplo, você pode listar as tabelas no banco de dados usando o comando \dt:

postgres=## \dt

Este comando exibirá uma lista de tabelas no banco de dados atual. Como o banco de dados postgres é usado principalmente para tarefas administrativas, ele pode não conter tabelas definidas pelo usuário.

Você também pode visualizar informações sobre a conexão atual com o banco de dados usando o comando \conninfo:

postgres=## \conninfo

Este comando exibirá informações como o nome do banco de dados, usuário, host e porta.

Para desconectar do banco de dados atual e retornar à conexão padrão, você pode usar o comando \c sem especificar um nome de banco de dados:

postgres=## \c

Isso o reconectará ao banco de dados padrão, que geralmente é o banco de dados postgres.

Comando psql conectando ao banco de dados postgres

Por fim, saia do shell psql digitando \q e pressionando Enter:

postgres=## \q

Isso retornará você ao shell do usuário labex.

Nesta etapa, você aprendeu como listar os bancos de dados disponíveis, conectar-se a um banco de dados específico e explorar seu conteúdo usando o shell psql.

Verificar o Status do Servidor e a Configuração Básica

Nesta etapa, verificaremos o status do servidor PostgreSQL e exploraremos algumas configurações básicas.

Como mencionado anteriormente, como a VM do LabEx é executada em um contêiner Docker, os comandos systemctl podem não funcionar como esperado. Usaremos principalmente pg_isready e psql para verificar o status do servidor.

Primeiro, vamos verificar novamente se o servidor PostgreSQL está em execução. Execute o seguinte comando:

pg_isready

Se o PostgreSQL estiver em execução, você deverá ver a seguinte saída:

/var/run/postgresql:5432 - accepting connections

Em seguida, vamos verificar algumas configurações básicas usando o shell psql. Acesse o shell psql como o usuário postgres:

sudo -u postgres psql

Uma vez no shell psql, você pode verificar a versão do PostgreSQL usando a seguinte consulta SQL:

SELECT version();

Execute esta consulta no shell psql. Você deverá ver uma saída semelhante a:

                                                                version
----------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)

Isso mostra a versão do PostgreSQL instalada no servidor.

Você também pode verificar o usuário atual do banco de dados:

SELECT user;

A saída será:

  user
----------
 postgres
(1 row)

Para verificar o nome do banco de dados ao qual você está conectado atualmente, use:

SELECT current_database();

A saída será:

 current_database
------------------
 postgres
(1 row)

Para visualizar as configurações, você pode usar o comando SHOW. Por exemplo, para verificar a configuração listen_addresses, que especifica os endereços IP nos quais o servidor aguarda conexões, execute o seguinte comando:

SHOW listen_addresses;

A saída provavelmente será:

 listen_addresses
--------------------
 localhost
(1 row)

O localhost indica que o servidor está ouvindo no localhost.

Outra configuração útil para verificar é a port, que especifica o número da porta na qual o servidor aguarda conexões:

SHOW port;

A saída será:

 port
------
 5432
(1 row)

Isso indica que o servidor está ouvindo na porta 5432, que é a porta padrão do PostgreSQL.

Saída do shell psql do PostgreSQL

Por fim, saia do shell psql digitando \q e pressionando Enter:

postgres=## \q

Isso retornará você ao shell do usuário labex.

Nesta etapa, você aprendeu como verificar o status do servidor PostgreSQL e explorar algumas configurações básicas usando pg_isready e o shell psql.

Resumo

Neste laboratório, instalamos o RDBMS PostgreSQL na VM do LabEx usando apt update e apt install postgresql postgresql-contrib -y. A flag -y foi usada para aceitar automaticamente os prompts durante a instalação.

Após a instalação, verificamos se o serviço do PostgreSQL estava em execução e aceitando conexões. Devido ao fato de a VM do LabEx ser executada em um contêiner Docker, usamos o comando pg_isready em vez de systemctl status postgresql para verificar o status do servidor. A saída esperada do pg_isready quando o servidor está em execução é /var/run/postgresql:5432 - accepting connections.