Compartilhar via


Início Rápido: Instalar o SQL Server e criar um banco de dados no Subsistema do Windows para Linux (WSL 2)

Aplica-se a:SQL Server no Linux

O Subsistema do Windows para Linux (WSL) é um recurso no Windows que permite executar um ambiente Linux diretamente em seu computador Windows, sem a necessidade de uma máquina virtual ou inicialização dupla. O WSL fornece uma experiência contínua e produtiva para desenvolvedores que desejam usar o Windows e o Linux simultaneamente. Para obter mais informações, consulte O que é o Subsistema do Windows para Linux?

O SQL Server no WSL é somente para uso de desenvolvimento

O SQL Server no WSL 2 destina-se apenas a fins de desenvolvimento e não tem suporte para cargas de trabalho de produção. É recomendável executar o SQL Server em ambientes WSL em uma das plataformas com suporte , conforme documentado, para a versão do SQL Server que você pretende executar.

Para quaisquer problemas relacionados ao suporte, você pode obter suporte da Microsoft.

Introdução ao SQL Server no WSL 2

Há duas maneiras de começar a usar o SQL Server no WSL 2:

  • Instale o SQL Server como um systemd serviço, que pode ser gerenciado usando systemctl comandos. Certifique-se de habilitar systemd no WSL. Para obter mais informações, consulte Como habilitar o sistema.

  • Implantar contêineres do SQL Server no WSL. Para essa opção, você precisa instalar um mecanismo de contêiner do Linux no WSL, como Docker ou Podman, e implantar contêineres do SQL Server.

Pré-requisitos

Instalar o WSL 2. Verifique se você está executando o Windows 10 versão 2004 ou uma versão posterior (Build 19041 e superior) ou Windows 11. Para instalar o WSL, abra um prompt de comando do PowerShell ou do Windows no modo de administrador e siga as instruções na próxima seção.

Para obter instruções detalhadas, consulte Como instalar o Linux no Windows com o WSL. Para obter informações sobre como configurar o ambiente WSL para desenvolvimento, consulte Configurar um ambiente de desenvolvimento WSL.

Instalar o SQL Server no WSL

Esta seção descreve as etapas para configurar uma distribuição do Linux no WSL e como instalar o SQL Server nessa distribuição do Linux.

Escolher distribuição do Linux

Você pode listar todas as distribuições válidas que podem ser instaladas no WSL usando o seguinte comando:

wsl -l -o

A saída é semelhante ao exemplo a seguir.

The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Para este início rápido, instale o Ubuntu 22.04 e instale o SQL Server 2022 nessa distribuição.

Para instalar o Ubuntu 22.04, execute o comando a seguir. Anote a conta de usuário e a senha do UNIX. Neste exemplo, use wsluser como o nome de usuário.

wsl --install -d Ubuntu-22.04

Você deverá ver uma saída semelhante ao exemplo a seguir. No final, ele deve mostrar que você está conectado ao shell bash do Ubuntu 22.04.

Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Tue Dec  3 00:32:14 IST 2024

  System load:  0.33                Processes:             32
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 2%                  IPv4 address for eth0: 10.18.123.249
  Swap usage:   0%

This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.

Instale o SQL Server

Depois de fazer logon no shell bash do Ubuntu 22.04, você pode seguir as etapas descritas no Início Rápido: Instalar o SQL Server e criar um banco de dados no Ubuntu para instalar o SQL Server 2022.

Você também deve instalar as ferramentas de linha de comando do SQL Server .

Obter o endereço IP

Para identificar o endereço IP ao qual se conectar usando o SSMS (SQL Server Management Studio), execute o comando da ifconfig seguinte maneira:

ifconfig

Você deverá ver uma saída semelhante ao exemplo a seguir.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.19.50.241  netmask 255.255.240.0  broadcast 10.19.63.255
        inet6 fe80::215:5dff:fe76:c05d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:76:c0:5d  txqueuelen 1000  (Ethernet)
        RX packets 2146  bytes 1452448 (1.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1905  bytes 345288 (345.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2039  bytes 4144340 (4.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2039  bytes 4144340 (4.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Implantar contêineres do SQL Server no WSL

Para implantar contêineres no WSL, primeiro você precisa instalar um mecanismo de contêiner do Linux, como o Docker. Para obter mais informações, consulte Introdução aos contêineres remotos do Docker no WSL. Depois de instalar o mecanismo do Docker, implante a imagem de contêiner do SQL Server da seguinte maneira.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest

Ao implantar um contêiner para o SQL Server 2025 (17.x) ou uma versão posterior, use MSSQL_PID=DeveloperStandard para a edição Standard Developer e MSSQL_PID=Developer para o Enterprise Developer Edition.

Observação

Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.

Adicionar armazenamento persistente com WSL para contêineres do SQL Server

Você pode criar volumes de dados conforme descrito em Montar um diretório de host como volume de dados.

Por exemplo, execute o comando a seguir para configurar um volume chamado sql_volume localizado em /var/opt/mssql/.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest

Ao implantar um contêiner para o SQL Server 2025 (17.x) ou uma versão posterior, use MSSQL_PID=DeveloperStandard para a edição Standard Developer e MSSQL_PID=Developer para o Enterprise Developer Edition.

Mesmo que você execute o wsl --terminate comando, os dados não serão perdidos. Quando você inicia o WSL novamente e executa o docker run comando para implantar usando o sql_volume volume, ele ainda tem todos os dados intactos.

Se você quiser excluir o volume persistente, certifique-se de que o contêiner que usa o volume seja interrompido e removido e execute o comando a seguir.

docker volume rm sql_volume

Observações

Você deve ser capaz de configurar a maioria dos recursos compatíveis com o SQL Server no Linux para fins de desenvolvimento, exceto os recursos de continuidade de negócios que dependem de pilhas de clustering. Esses recursos, como Pacemaker ou HPE Serviceguard, não têm suporte no WSL.

Para obter uma lista completa de recursos sem suporte para o SQL Server no Linux, consulte Edições e recursos com suporte do SQL Server 2022 no Linux.

Conectar-se localmente

As etapas a seguir usam o sqlcmd para conectar-se localmente à nova instância do SQL Server.

Cuidado

Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.

  1. Execute o sqlcmd com parâmetros para o nome do SQL Server (-S), o nome de usuário (-U) e a senha (-P). Neste tutorial, você se conecta localmente, portanto, o nome do servidor é localhost. O nome de usuário é sa e a senha é a mesma fornecida para a conta sa durante a instalação.

    sqlcmd -S localhost -U sa -P '<password>'
    

    Observação

    As versões mais recentes do sqlcmd são seguras por padrão. Para obter mais informações sobre a criptografia de conexão, confira Utilitário sqlcmd para Windows e Conectar com sqlcmd para Linux e macOS. Se a conexão não for bem-sucedida, você poderá adicionar a opção -No ao sqlcmd para especificar que a criptografia é opcional, não obrigatória.

    É possível omitir a senha na linha de comando para receber uma solicitação para inseri-la.

    Se depois você decidir se conectar remotamente, especifique o nome do computador ou endereço IP do parâmetro -S e verifique se a porta 1433 está aberta no firewall.

  2. Se isso funcionar, você será levado a um prompt de comando sqlcmd: 1>.

  3. Se houver uma falha de conexão, primeiro, tente diagnosticar o problema da mensagem de erro. Em seguida, examine as recomendações de solução de problemas de conexão.

Criar e consultar dados

As seções a seguir descrevem como usar o sqlcmd para criar um novo banco de dados, adicionar dados e executar uma consulta simples.

Para mais informações sobre como escrever consultas e instruções em Transact-SQL, veja Tutorial: Escrever instruções do Transact-SQL.

Criar um novo banco de dados

As etapas a seguir criam um novo banco de dados denominado TestDB.

  1. No prompt de comando sqlcmd, cole o seguinte comando Transact-SQL para criar um banco de dados de teste:

    CREATE DATABASE TestDB;
    
  2. Na próxima linha, grave uma consulta para retornar o nome de todos os bancos de dados do servidor:

    SELECT Name
    FROM sys.databases;
    
  3. Os dois comandos anteriores não são executados imediatamente. Digite GO em uma nova linha para executar os comandos anteriores:

    GO
    

Inserir dados

Em seguida, crie uma nova tabela, dbo.Inventory, e insira duas novas linhas.

  1. No prompt de comando sqlcmd, altere o contexto para o novo banco de dados TestDB:

    USE TestDB;
    
  2. Criar nova tabela denominada dbo.Inventory:

    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Inserir dados na nova tabela:

    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Digite GO para executar os comandos anteriores:

    GO
    

Selecionar dados

Agora, execute uma consulta para retornar da tabela dbo.Inventory.

  1. No prompt de comando sqlcmd, digite uma consulta que retorna linhas de tabela dbo.Inventory em que a quantidade é maior que 152:

    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Execute o comando:

    GO
    

Saia do prompt de comando sqlcmd

Para encerrar a sessão sqlcmd, digite QUIT:

QUIT

Práticas recomendadas de desempenho

Após instalar o SQL Server em Linux, examine as práticas recomendadas para configuração do Linux e do SQL Server a fim de melhorar o desempenho para cenários de produção. Para obter mais informações, confira Práticas recomendadas de desempenho e diretrizes de configuração do SQL Server em Linux.

Ferramentas de dados multiplataforma

Além de sqlcmd, você pode usar as seguintes ferramentas multiplataforma para gerenciar o SQL Server:

Ferramenta Descrição
Código do Visual Studio Um editor de código gui multiplataforma que executa instruções Transact-SQL com a extensão MSSQL.
PowerShell Uma ferramenta de automação e configuração multiplataforma baseada em cmdlets.
mssql-cli Uma interface de linha de comando multiplataforma para executar comandos Transact-SQL.

Conecte-se do Windows

As ferramentas do SQL Server no Windows se conectam às instâncias do SQL Server no Linux da mesma forma que se conectam a qualquer instância remota do SQL Server.

Se você tiver um computador Windows que possa se conectar ao seu computador Linux, experimente as mesmas etapas neste artigo em um prompt de comando do Windows executando o sqlcmd. É necessário usar o nome de destino do computador Linux ou o endereço IP em vez do localhost e ter certeza de que a porta TCP 1433 está aberta no computador SQL Server. Se houver problemas ao se conectar do Windows, consulte recomendações de solução de problemas de conexão.

Para outras ferramentas que executam o Windows, mas se conectam ao SQL Server no Linux, consulte:

Outros cenários de implantação

Para outros cenários de instalação, veja os seguintes recursos:

Para obter respostas a perguntas frequentes, confira as Perguntas frequentes sobre o SQL Server em Linux.

Contribua com a documentação do SQL

Você sabia que pode editar o conteúdo do SQL por conta própria? Se você fizer isso, não só ajudará a melhorar nossa documentação, mas também será creditado como um colaborador da página.

Para obter mais informações, consulte Editar a documentação do Microsoft Learn.