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
- Executar o Windows 11 ou o Windows 10, atualizado para a versão 2004, Build 19041 ou superior.
- Instale uma distribuição do Linux usando o WSL e crie um nome de usuário e senha do Linux.
Diferenças entre sistemas de banco de dados
Algumas opções populares para um sistema de banco de dados incluem:
- MySQL (SQL)
- PostgreSQL (SQL)
- Microsoft SQL Server (SQL)
- SQLite (SQL)
- MongoDB (NoSQL)
- Redis (NoSQL)
O MySQL é um banco de dados relacional SQL de código aberto que organiza os dados em uma ou mais tabelas nas quais os tipos de dados podem estar relacionados entre si. Ele é verticalmente escalonável, o que significa que um computador final fará o trabalho para você. Atualmente, ele é 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 código aberto com ênfase em extensibilidade e conformidade com os 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 o SQL Server no Windows, o SQL Server em Linux e o SQL no Azure. Esses também são sistemas de gerenciamento de bancos de dados relacionais configurados em servidores com a função principal de armazenar e recuperar dados conforme solicitado pelos aplicativos de software.
O SQLite é um banco de dados independente de código aberto, 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 documentos NoSQL de código aberto projetado para funcionar 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ê. É ótimo para flexibilidade e dados não estruturados, além de armazenar em cache análises em tempo real.
Redis é um armazenamento de estrutura de dados NoSQL em memória de código aberto. Ele usa pares chave-valor para armazenamento em vez de documentos.
Instalar MySQL
Para instalar o MySQL em uma distribuição do Linux em execução no WSL, siga as instruções em Como instalar o MySQL no Linux nos documentos do MySQL. Talvez seja necessário primeiro habilitar o suporte ao systemd no arquivo de configuração do wsl.conf
.
Exemplo usando a distribuição do Ubuntu:
- Abra a linha de comando do Ubuntu e atualize os pacotes disponíveis:
sudo apt update
- Depois que os pacotes forem atualizados, instale o MySQL com:
sudo apt install mysql-server
- Confirme a instalação e obtenha o número de versão:
mysql --version
- Iniciar o MySQL Server/verificar o status:
systemctl status mysql
- 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 saber mais sobre como trabalhar com bancos de dados MySQL, confira a documentação do MySQL.
Para trabalhar com bancos de dados MySQL no VS Code, experimente a extensão MySQL.
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. Esse script também inclui etapas para alterar a senha do usuário raiz do MySQL. Para executar o script de segurança:
- Inicie um servidor MySQL:
sudo service mysql start
- Inicie os prompts de script de segurança:
sudo mysql_secure_installation
- O primeiro prompt perguntará se você deseja configurar o VALIDATE PASSWORD COMPONENT, que pode ser usado para testar a força da senha do MySQL. Se você quiser definir uma senha simples, não defina esse componente.
- Em seguida, você definirá/alterará uma senha para o usuário raiz do MySQL e decidirá se removerá ou não os usuários anônimos, se permitirá que o usuário raiz faça logon local e remotamente, se removerá o banco de dados de teste e, por fim, se recarregará as tabelas de privilégios imediatamente.
Instalar o PostgreSQL
Para instalar o PostgreSQL no WSL (ou seja, Ubuntu):
- Abra o terminal do WSL (ou seja, Ubuntu).
- Atualize os pacotes do Ubuntu:
sudo apt update
- 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
- 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 iniciar a execução do 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:
- Insira o comando:
sudo passwd postgres
- Você deverá inserir sua nova senha.
- Feche e abra novamente o terminal.
Para executar o PostgreSQL com o shell do psql:
- Inicie o serviço Postgres:
sudo service postgresql start
- 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 do 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 --command="\du"
no terminal do WSL ou apenas \du
se o shell do psql estiver aberto. Esse comando exibirá as 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, confira a documentação do PostgreSQL.
Para trabalhar com bancos de dados PostgreSQL no VS Code, experimente a extensão PostgreSQL.
Instalar o MongoDB
Para instalar o MongoDB, consulte os documentos do Mongodb: Instalar o MongoDB Community Edition no Linux
A instalação do MongoDB pode exigir etapas ligeiramente diferentes, dependendo da distribuição do Linux usada para instalação. Observe também que a instalação do MongoDB pode ser diferente dependendo da versão nº 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 que se alinha à sua meta. Por fim, talvez seja necessário habilitar o suporte ao systemd no arquivo de configuração wsl.conf
da distribuição do Linux que você está usando com o WSL. O comando systemctl
faz parte do sistema de inicialização systemd e pode não funcionar se a distribuição estiver usando o systemv.
O VS Code dá suporte ao trabalho com bancos de dados MongoDB por meio da extensão do Azure Cosmos DB, você pode criar bancos de dados MongoDB no VS Code, gerenciá-los e consultá-los. Para saber mais, acesse a documentação do VS Code: Trabalhar com o MongoDB.
Saiba mais nos documentos do MongoDB:
Instale o Microsoft SQL Server
Para instalar o SQL Server em uma distribuição do Linux executada pelo WSL: SQL Server no Linux. 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):
- Abra o terminal do WSL (ou seja, Ubuntu).
- Atualize os pacotes do Ubuntu:
sudo apt update
- Depois que os pacotes forem atualizados, instale o SQLite3 com:
sudo apt install sqlite3
- 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 seu banco de dados com CREATE TABLE empty (kol INTEGER);
.
Agora, inserir o .dbinfo ?DB?
mostrará o banco de dados criado.
Para sair do prompt do SQLite, insira: .exit
Para obter mais informações sobre como trabalhar com um banco de dados SQLite, confira a documentação 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):
- Abra o terminal do WSL (ou seja, Ubuntu).
- Atualize os pacotes do Ubuntu:
sudo apt update
- Depois que os pacotes forem atualizados, instale o Redis com:
sudo apt install redis-server
- 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, confira a documentação do Redis.
Para trabalhar com bancos de dados Redis no VS Code, experimente a extensão Redis.
Ver serviços em execução e configurar aliases de perfil
Para ver os serviços que você tem atualmente em execução na distribuição do 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:
Abra o terminal do WSL e insira
cd ~
para ter certeza de que você está no diretório raiz.Abra o arquivo
.profile
, que controla as configurações do terminal, com o editor de texto do terminal, o Nano:sudo nano .profile
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 erun-pg
para abrir o shell do psql. Você pode alterarstart-pg
erun-pg
para os nomes que desejar; apenas tenha cuidado para não substituir um comando que o Postgres já usa.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
).Feche e abra novamente o terminal do WSL e, em seguida, experimente os novos comandos de alias.
Solução de problemas
Erro: directory-sync fdatasync Invalid argument
Verifique se você está executando sua distribuição do Linux no modo WSL 2. Para obter ajuda para alternar do WSL 1 para o WSL 2, confira Definir sua versão de distribuição como WSL 1 ou WSL 2.
Recursos adicionais
Windows Subsystem for Linux