Expliquei anteriormente como instalar o SQL Server em um Mac usando a imagem do SQL Server para Linux Docker.
Desde então, a Apple lançou seu chip M1, que usa arquitetura ARM. Isso pode causar um problema ao tentar instalar o SQL Server. O problema é que, no momento da escrita, o SQL Server não é compatível com a arquitetura ARM.
Felizmente, existe uma alternativa.
A imagem de contêiner do Azure SQL Edge pode ser instalada no M1 Mac. Portanto, podemos usar essa imagem em vez da imagem do SQL Server.
O Azure SQL Edge é um mecanismo de banco de dados relacional otimizado voltado para implantações de IoT e IoT Edge. Ele foi desenvolvido com base nas versões mais recentes do Mecanismo de Banco de Dados do SQL Server, para que você possa usar o código T-SQL da mesma forma que faria ao usar o SQL Server. Você também pode usar as mesmas ferramentas para consultar o Azure SQL Edge que usaria com o SQL Server (como SSMS, Azure Data Studio etc.).
Neste artigo, instalo a Developer Edition do Azure SQL Edge em um Mac com o chip M1.
Instalar o Docker
Visto que estamos instalando o SQL Edge por meio de um contêiner do Docker, precisamos ter o Docker instalado.
Se você ainda não possui o Docker, faça o download e instale-o da seguinte forma:
- Baixe o Docker no site do Docker. Certifique-se de baixar o do M1 Mac (o botão se chamava
Mac with Apple Chip
quando baixei). - Após o download, abra o
.dmg
arquivo e arraste o ícone Docker.app para a pasta Aplicativos conforme as instruções. - Inicie o Docker da mesma forma que iniciaria qualquer outro aplicativo (por exemplo, por meio da pasta Aplicativos, do Launchpad etc.). Ao abrir o Docker, você pode ser solicitado a fornecer sua senha. Vá em frente e forneça sua senha, pois o Docker precisa que ela seja executada.
Instalar o Azure SQL Edge
Agora que o Docker está instalado, podemos prosseguir e instalar o Azure SQL Edge. Como mencionado, isso usa o SQL Server Database Engine e, portanto, podemos usá-lo para executar consultas T-SQL, etc., como se estivéssemos consultando o SQL Server.
Abra uma janela do Terminal e execute o seguinte comando:
docker pull mcr.microsoft.com/azure-sql-edge
Isso puxa/baixa a imagem do contêiner para sua máquina local.
Você também pode verificar as opções de contêiner no site do Docker, se preferir.
Quando o download estiver concluído, execute o seguinte comando para iniciar uma instância da imagem do Docker que você acabou de baixar:
sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=bigStrongPwd' -p 1433:1433 --name sqledge -d mcr.microsoft.com/azure-sql-edge
Certifique-se de alterar
bigStrongPwd
para uma senha forte de sua escolha. Você também pode alterar o valor do --name
parâmetro, se desejar. Por padrão, o contêiner é executado com a Developer Edition. Você pode executar a Premium Edition adicionando
-e 'MSSQL_PID=Premium'
. Verifique o contêiner do Docker
Podemos usar o seguinte comando para verificar se o contêiner está funcionando:
docker ps
Resultado:
a190dd199b17 mcr.microsoft.com/azure-sql-edge "/opt/mssql/bin/perm…" 10 seconds ago Up 9 seconds 1401/tcp, 0.0.0.0:1433->1433/tcp sqledge
Isso me mostra que o contêiner está, de fato, em funcionamento.
Se, por algum motivo, seu contêiner não estiver funcionando, tente o seguinte comando:
docker start sqledge
Substituir
sqledge
com o nome do seu contêiner. Com o contêiner em execução, agora podemos prosseguir e nos conectar ao SQL Edge.
Conectar ao SQL Edge
Agora você pode se conectar à instalação do Azure SQL Edge usando os detalhes fornecidos ao iniciar a imagem do Docker.
Aqui está uma captura de tela de conexão ao Azure SQL Edge por meio do Azure Data Studio:
Veja como instalar o Azure Data Studio em um Mac.
A Microsoft afirma que o Azure Data Studio “atualmente não suporta a arquitetura ARM”, mas não tive nenhum problema em instalá-lo no meu M1 Mac (ou seja, com arquitetura ARM).
Executar consultas SQL
Uma vez conectado ao SQL Edge, você pode criar bancos de dados, executar consultas T-SQL, etc (T-SQL é a extensão do SQL Server para SQL).
Veja meu tutorial de SQL para se familiarizar com a execução de consultas SQL.
Recursos suportados no SQL Edge
Devo mencionar que alguns recursos do SQL Server não são suportados no SQL Edge. O Azure SQL Edge dá suporte a um subconjunto dos recursos com suporte do SQL Server 2019 no Linux.
Dito isso, o SQL Edge tem alguns recursos que não estão disponíveis no SQL Server (como o
DATE_BUCKET()
função). Consulte recursos com suporte do Azure SQL Edge no site da Microsoft para obter um detalhamento completo.