Usando o SQL Server no macOS

Rafael Veronezi (Hakan)
3 min readNov 1, 2019

O SQL Server foi durante muito tempo um produto exclusivo do Windows. Isso felizmente mudou com o lançamento da versão 2014 do produto, que passou a disponibilizar o serviço Database Engine para instalação no Linux. Isso abriou novas possibilidades como disponibiliza-lo via Docker, e com isso podemos começar a ter o recurso dentro do macOS.

As imagens de Docker do SQL Server foram disponibilizadas pela própria Microsoft dentro do Docker Hub. Tendo o Docker instalado e em execução basta usar o comando:

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

Isso irá baixar a imagem da última versão estável do SQL Server 2017 Database Engine disponível. Para subir criar uma nova instância use o seguinte comando:

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=P@ssword1" \
-p 1433:1433 \
--name sql1 \
--restart unless-stopped \
-d mcr.microsoft.com/mssql/server:2017-latest

Com isso será configurada uma nova instância que pode ser acessada diretamente por localhost e usando a porta padrão do SQL Server. Na prática é como se você tivesse um servidor local nos mesmos moldes do Windows.

O comando docker run cria e inicia um novo container a partir de uma imagem existente. Alguns detalhes sobre os parâmetros passados no comando:

  • -e passa variáveis de ambiente para imagem, no exemplo estamos passando as variáveis ACCEPT_EULA para aceitar o contrato de uso e SA_PASSWORD para definir qual a senha do usuário sa. Substituia pela senha que desejar usar para seu container.
  • -p fará com que a porta 1433 do container seja mapeada para a porta 1433 do computador local.
  • --name define o nome do container
  • -d instrui o Docker que sempre que o container executará em background
  • --restart defina a política de re-início do container, aqui usamos unless-stopped, onde o container será sempre re-iniciado a não ser que você de um stop explicitamente. Você pode querer remover esse parâmetro caso não deseje que o container inicie automaticamente junto com o computador

Para conferir se a criação aconteceu corretamente, execute no terminal:

docker ps -a

Esse comando lista os processos do Docker, o output deve ser semelhante ao abaixo:

Para acessar e administrar o servidor há diversas ferramentas disponíveis no macOS:

  • Azure Data Studio: Esse é um IDE multiplataforma da Microsoft para conectar-se e administrar servidores SQL Server. Ao longo do tempo deverá substituir o Management Studio quando incorporar mais de suas capacidades.
  • Plugin para VS Code: Com esse plugin é possível acessar instâncias do SQL Server diretamente através do VS Code. Muito prático e conveniente.
  • mssql-cli: Ferramentas de linha de comando multiplataforma para acessar instâncias do SQL Server. Bastante rica em recursos e prática para ações rápidas.

Se precisar iniciar ou parar o container use os comandos abaixo:

# Iniciar a instância
sudo docker start sql1

# Parar a instância
sudo docker stop sql1

Referências

Originally published at https://ravero.github.io on November 1, 2019.

--

--

Rafael Veronezi (Hakan)

Engenheiro de Software, especialista em desenvolvimento Mobile.