Introdução aos bancos de dados no Subsistema do Windows para Linux

Este guia passo a passo ajudará você a começar a conectar seu projeto no WSL a um banco de dados. Introdução ao MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server ou SQLite.

Pré-requisitos

Diferenças entre sistemas de banco de dados

As opções mais populares para um sistema de banco de dados incluem:

O MySQL é um banco de dados relacional SQL de software livre, organizando dados em uma ou mais tabelas nas quais os tipos de dados podem estar relacionados uns aos outros. Ele é verticalmente escalonável, o que significa que um computador final fará o trabalho para você. Atualmente, é o mais usado dos quatro sistemas de banco de dados.

O PostgreSQL (às vezes chamado de Postgres) também é um banco de dados relacional sql de software livre com ênfase na conformidade de extensibilidade e padrões. Agora ele também pode tratar JSON, mas geralmente é melhor para dados estruturados, dimensionamento vertical e necessidades em conformidade com ACID, como comércio eletrônico e transações financeiras.

O Microsoft SQL Server inclui SQL Server no Windows, SQL Server em Linux e SQL no Azure. Eles também são sistemas de gerenciamento de banco de dados relacionais configurados em servidores com a função primária de armazenar e recuperar dados conforme solicitado por aplicativos de software.

O SQLite é um banco de dados independente de software livre, baseado em arquivo, "sem servidor", conhecido por sua portabilidade, confiabilidade e bom desempenho, mesmo em ambientes de baixa memória.

O MongoDB é um banco de dados de documento NoSQL de software livre projetado para trabalhar com JSON e armazenar dados sem esquema. Ele é horizontalmente escalonável, o que significa que vários computadores menores farão o trabalho para você. Isso é bom para flexibilidade e dados não estruturados e para armazenar em cache a análise em tempo real.

O Redis é um repositório de estrutura de dados noSQL na memória de software livre. Ele usa pares chave-valor para armazenamento em vez de documentos. O Redis é conhecido por sua flexibilidade, desempenho e suporte a linguagem ampla. Ele é flexível o suficiente para ser usado como um agente de cache ou mensagem e pode usar estruturas de dados como listas, conjuntos e hashes.

O tipo de banco de dados escolhido deve depender do tipo de aplicativo com o qual você usará o banco de dados. Recomendamos que você pesquise as vantagens e as desvantagens de bancos de dados estruturados e não estruturados e faça uma escolha com base em seu caso de uso.

Instalar MySQL

Para instalar o MySQL no WSL (ou seja, . Ubuntu):

  1. Abra o terminal do WSL (ou seja, . Ubuntu).
  2. Atualize os pacotes do Ubuntu: sudo apt update
  3. Depois que os pacotes tiverem sido atualizados, instale o MySQL com: sudo apt install mysql-server
  4. Confirme a instalação e obtenha o número de versão: mysql --version

Talvez você também queira executar o script de segurança incluído. Isso altera algumas das opções padrão menos seguras para itens como logons raiz remotos e usuários de exemplo. Para executar o script de segurança:

  1. Inicie um servidor MySQL: sudo /etc/init.d/mysql start
  2. Inicie os prompts de script de segurança: sudo mysql_secure_installation
  3. O primeiro prompt perguntará se você deseja configurar o Plug-in Validar Senha, que pode ser usado para testar a força da senha do MySQL. Em seguida, você definirá uma senha para o usuário raiz do MySQL, decidirá se deseja ou não remover usuários anônimos, decidirá se deseja permitir que o usuário raiz faça logon local e remotamente, decida se deseja remover o banco de dados de teste e, por fim, decidir se deve recarregar as tabelas de privilégios imediatamente.

Para abrir o prompt do MySQL, insira: sudo mysql

Para ver quais bancos de dados você tem disponíveis, no prompt do MySQL, insira: SHOW DATABASES;

Para criar um novo banco de dados, insira: CREATE DATABASE database_name;

Para excluir um banco de dados, insira: DROP DATABASE database_name;

Para obter mais informações sobre como trabalhar com bancos de dados MySQL, consulte os documentos do MySQL.

Para trabalhar com bancos de dados MySQL no VS Code, experimente a extensão MySQL.

Instalar o PostgreSQL

Para instalar o PostgreSQL no WSL (ou seja, Ubuntu):

  1. Abra o terminal do WSL (ou seja, . Ubuntu).
  2. Atualize os pacotes do Ubuntu: sudo apt update
  3. Depois que os pacotes forem atualizados, instale o PostgreSQL (e o pacote -contrib que tem alguns utilitários úteis) com: sudo apt install postgresql postgresql-contrib
  4. Confirme a instalação e obtenha o número de versão: psql --version

Há três comandos que você precisará saber quando o PostgreSQL estiver instalado:

  • sudo service postgresql status para verificar o status do banco de dados.
  • sudo service postgresql start para começar a executar seu banco de dados.
  • sudo service postgresql stop para interromper a execução do banco de dados.

O usuário administrador padrão, postgres, precisa de uma senha atribuída para se conectar a um banco de dados. Para definir uma senha:

  1. Insira o comando: sudo passwd postgres
  2. Você deverá inserir sua nova senha.
  3. Feche e abra novamente o terminal.

Para executar o PostgreSQL com o shell psql :

  1. Inicie o serviço Postgres: sudo service postgresql start
  2. Conecte-se ao serviço Postgres e abra o shell do psql: sudo -u postgres psql

Depois de entrar no shell do psql com êxito, você verá a linha de comando ser alterada para ter a seguinte aparência: postgres=#

Observação

Como alternativa, você pode abrir o shell do psql alternando para o usuário do Postgres com su - postgres e, em seguida, inserindo o comando psql.

Para sair postgres=# insira: \q ou use a tecla de atalho: Ctrl+D

Para ver quais contas de usuário foram criadas na instalação do PostgreSQL, use psql -c "\du" no terminal do WSL ou apenas \du se o shell do psql estiver aberto. Este comando exibirá colunas: Nome de Usuário da Conta, Lista de Atributos de Funções e Membro de grupos de funções. Para voltar à linha de comando, insira q.

Para obter mais informações sobre como trabalhar com bancos de dados PostgreSQL, consulte os documentos do PostgreSQL.

Para trabalhar com bancos de dados PostgreSQL no VS Code, experimente a extensão PostgreSQL.

Instalar o MongoDB

Para instalar o MongoDB (versão 5.0) no WSL (Ubuntu 20.04):

  1. Abra o terminal do WSL (ou seja, . Ubuntu) e vá para o diretório base: cd ~
  2. Atualize os pacotes do Ubuntu: sudo apt update
  3. Importe a chave pública usada pelo sistema de gerenciamento de pacotes do MongoDB: wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Crie um arquivo de lista para o MongoDB: echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. Recarregar o banco de dados de pacote local: sudo apt-get update
  6. Instalar pacotes do MongoDB: sudo apt-get install -y mongodb-org
  7. Confirme a instalação e obtenha o número de versão: mongod --version
  8. Crie um diretório para armazenar dados: mkdir -p ~/data/db
  9. Execute uma instância do Mongo: sudo mongod --dbpath ~/data/db
  10. Verifique se a instância do MongoDB está em execução com: ps -e | grep 'mongod'
  11. Para sair do Shell do MongoDB, use as teclas de atalho: Ctrl + C

Dica

A instalação do MongoDB pode exigir etapas ligeiramente diferentes, dependendo da distribuição do Linux que está sendo usada para instalação. Confira os tutoriais de instalação do MongoDB. Observe também que a instalação do MongoDB pode ser diferente dependendo da versão # que você pretende instalar. Use a lista suspensa de versão no canto superior esquerdo da documentação do MongoDB para selecionar a versão alinhada à sua meta.

Diferenças de sistema de inicialização do MongoDB

No exemplo acima, executamos o MongoDB diretamente. Outros tutoriais podem iniciar o MongoDB usando o sistema de inicialização interno do sistema operacional. Você pode ver o comando sudo systemctl status mongodb usado em tutoriais ou artigos. Atualmente, o WSL não tem suporte para systemd (um sistema de gerenciamento de serviços no Linux).

Você não deverá notar uma diferença, mas se um tutorial recomendar o uso de sudo systemctl, use sudo /etc/init.d/. Por exemplo, sudo systemctl status docker para o WSL será sudo /etc/init.d/docker status, ou você também pode usar sudo service docker status.

Adicionar o script de inicialização para iniciar o MongoDB como um serviço

As instruções de instalação acima instalam uma versão do MongoDB que não inclui um script automaticamente no /etc/init.d/. Se você quiser usar os comandos de serviço, poderá baixar o script init.d para mongodb dessa origem, colocá-lo manualmente como um arquivo neste caminho: /etc/init.d/mongodb e, em seguida, você pode iniciar o Mongo como um serviço usando sudo service mongodb start.

  1. Baixe o script init.d para MongoDB: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Atribua essas permissões executáveis de script: sudo chmod +x /etc/init.d/mongodb
  3. Agora você pode usar comandos de serviço do MongoDB:
    • sudo service mongodb status para verificar o status do banco de dados. Você deverá ver uma resposta [Falha] se nenhum banco de dados estiver em execução.
    • sudo service mongodb start para começar a executar o banco de dados. Você deve ver uma resposta [Ok].
    • sudo service mongodb stop para interromper a execução do banco de dados.
  4. Verifique se você está conectado ao servidor de banco de dados com o comando de diagnóstico: mongo --eval 'db.runCommand({ connectionStatus: 1 })' isso produzirá a versão atual do banco de dados, o endereço e a porta do servidor e a saída do comando status. Um valor igual a 1 para o campo "OK" na resposta indica que o servidor está funcionando.

Observação

O MongoDB tem vários parâmetros padrão, incluindo o armazenamento de dados em /data/db e a execução na porta 27017. Além disso, mongod é o daemon (processo de host para o banco de dados) e mongo é o shell de linha de comando que se conecta a uma instância específica do mongod.

O VS Code dá suporte ao trabalho com bancos de dados do MongoDB por meio da extensão do Azure CosmosDB. Você pode criar, gerenciar e consultar bancos de dados do MongoDB de dentro do VS Code. Para saber mais, visite os documentos do VS Code: Trabalhando com o MongoDB.

Saiba mais nos documentos do MongoDB:

Instalar o Microsoft SQL Server

Para instalar SQL Server no WSL (ou seja, Ubuntu), siga este início rápido: Instalar SQL Server e criar um banco de dados no Ubuntu.

Observação

Embora seja possível instalar e configurar SQL Server no WSL, não é uma configuração com suporte. Além disso, SQL Server em Linux requer systemd, que não está incluído no WSL.

Para trabalhar com bancos de dados do Microsoft SQL Server no VS Code, experimente a extensão MSSQL.

Instalar o SQLite

Para instalar o SQLite no WSL (ou seja, Ubuntu):

  1. Abra o terminal do WSL (ou seja, Ubuntu).
  2. Atualize os pacotes do Ubuntu: sudo apt update
  3. Depois que os pacotes tiverem sido atualizados, instale o SQLite3 com: sudo apt install sqlite3
  4. Confirme a instalação e obtenha o número de versão: sqlite3 --version

Para criar um banco de dados de teste, chamado "example.db", insira: sqlite3 example.db

Para ver uma lista dos bancos de dados SQLite, insira: .databases

Para ver o status do banco de dados, insira: .dbinfo ?DB?

O banco de dados ficará vazio após a criação. Você pode criar uma nova tabela para o banco de dados com CREATE TABLE empty (kol INTEGER);.

Agora, inserir o .dbinfo ?DB? mostrará o banco de dados que você criou.

Para sair do prompt do SQLite, insira: .exit

Para obter mais informações sobre como trabalhar com um banco de dados SQLite, consulte os documentos do SQLite.

Para trabalhar com bancos de dados SQLite no VS Code, experimente a extensão SQLite.

Instalar o Redis

Para instalar o Redis no WSL (ou seja, Ubuntu):

  1. Abra o terminal do WSL (ou seja, Ubuntu).
  2. Atualize os pacotes do Ubuntu: sudo apt update
  3. Depois que os pacotes tiverem sido atualizados, instale o Redis com: sudo apt install redis-server
  4. Confirme a instalação e obtenha o número de versão: redis-server --version

Para começar a executar o servidor Redis: sudo service redis-server start

Verifique se o Redis está funcionando (redis-cli é o utilitário de interface de linha de comando para conversar com o Redis): redis-cli ping isso deve retornar uma resposta de "PONG".

Para parar de executar o servidor Redis: sudo service redis-server stop

Para obter mais informações sobre como trabalhar com um banco de dados Redis, consulte os documentos do Redis.

Para trabalhar com bancos de dados Redis no VS Code, experimente a extensão Redis.

Confira serviços em execução e configurar aliases de perfil

Para ver os serviços que você tem atualmente em execução em sua distribuição WSL, insira: service --status-all

Digitar sudo service mongodb start ou sudo service postgres start e sudo -u postgrest psql pode ser entediante. No entanto, você pode considerar a configuração de aliases no arquivo .profile no WSL para tornar esses comandos mais rápidos e fáceis de serem lembrados.

Para configurar seu próprio alias personalizado ou atalho para execução destes comandos:

  1. Abra o terminal do WSL e insira cd ~ para ter certeza de que você está no diretório raiz.

  2. Abra o arquivo .profile, que controla as configurações do terminal, com o editor de texto do terminal, o Nano: sudo nano .profile

  3. Na parte inferior do arquivo (não altere as configurações de # set PATH), adicione o seguinte:

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    Isso permitirá que você insira start-pg para iniciar a execução do serviço PostgreSQL e run-pg para abrir o shell do psql. Você pode alterar start-pg e run-pg para os nomes que desejar; apenas tenha cuidado para não substituir um comando que o Postgres já usa.

  4. Depois de adicionar seus novos aliases, saia do editor de texto Nano usando Ctrl+X – selecione Y (Sim) quando precisar salvar o conteúdo e Enter (deixando o nome de arquivo como .profile).

  5. Feche e abra novamente o terminal do WSL e, em seguida, experimente os novos comandos de alias.

Solução de problemas

Erro: argumento inválido de fdatasync de sincronização de diretório

Verifique se você está executando sua distribuição do Linux no modo WSL 2. Para obter ajuda com a mudança do WSL 1 para o WSL 2, consulte Definir sua versão de distribuição como WSL 1 ou WSL 2.

Recursos adicionais