SQL Server no Linux – Os primeiros passos

Olá pessoal,

Confesso que hoje foi realmente a primeira vez que criei uma máquina Linux com o SQL Server vNext. Estava curioso para ver como funcionava e realmente é fácil ou não instalar o SQL Server. Meu conhecimento em Linux é realmente zero, então tive que pesquisar através das documentações como realizar todas as ações que eu precisava para então conectar em uma instancia rodando linux. Se alguem de vocês também precisar realizar algumas dessas operações, espero que essa postagem possa ajudar.

O que eu sinto falta em muitas documentações ou postagens é a falta de clareza nas informações ali passadas, então aqui será realmente um passo-a-passo.

Em meus testes estou usando uma VM no Azure, então os passos aqui são todos voltados para esse cenário.

1) Criar uma máquina Linux no Azure. Como podem ver na imagem abaixo o sistema operacional disponível é o Red Hat Enterprise Linux 7.2, ou seja, no Azure ainda não está disponível Ubuntu ou SUSE (Em Breve)

image

É importante lembrar que cada distribuição do Linux possuí diferentes comandos.

2) Criar as configurações da sua máquina. Algo que notei nesse passo é que você tem a possibilidade de realizar o upload de um certificado SSH para conexão. Não sei como essa opção funciona, então fico devendo maiores explicações sobre isso.

image

No meu caso selecionei a opção “Provide a password” e ai é tão simples como em Windows, forneça um usuário e uma senha. Nessa segunda tela estou deixando apenas o endpoint SSH habilitado para então realizar a conexão com a máquina.

image

3) Feito a criação da máquina você precisa realizar uma conexão e garantir que o SQL Server está propriamente instalado, configurado e principalmente rodando normalmente. Para isso, eu instalei a ferramenta Putty que é o utilitario para comunicação com máquinas Linux.

Download do PuTTY

image

A instalação aqui é bem simples. Next –> Next –> Finish

4) A máquina estando no ar, você precisa pegar o IP publico dela.

image

image

Abra o utilitário do PuTTY que você acabou de instalar e então preencha o campo Host Name (or IP Address) com o IP que você pegou na console do Azure. Deixei aqui um aviso que a Porta 22 precisa estar liberada nos Endpoints do Azure. Feito tudo isso é só clicar em Open.

image

Logo após você clicar em Open essa mensagem irá aparecer.

image

Basicamente a mesma está informando que a chave não está em cache nos registros e então pergunta se você confia no host. Apenas clique em YES.

5) A seguir as informações de logon serão requisitadas.

image

Pronto! Você está agora conectado na máquina virtual Linux.

image

6) A primeira coisa que fiz após esse passo foi verificar o status do serviço do SQL Server executando o seguinte comando:

systemctl status mssql-server

image

Como podem notar o serviço não está online, pois precisamos finalizar as configurações. Para isso execute o seguinte comando:

sudo /opt/mssql/bin/sqlservr-setup

image

Nota: Na imagem apenas digito Y, mas o correto é “YES”. Não esqueça também de fornecer a senha do usuário SA, pois é ele que você irá utilizar para realizar as primeiras conexões na instancia.

image

Pronto SQL Server configurado.

image

7) Para iniciar o serviço do SQL Server digite o seguinte comando:

sudo /opt/mssql/bin/sqlservr-setup –-start-service

image

Verificando mais uma vez o status do serviço do SQL vemos que ele realmente está online.

image

Outros comandos que podem ser utilizados para iniciar e parar os serviços do SQL Server.

   sudo systemctl stop mssql-server
   sudo systemctl start mssql-server
   sudo systemctl restart mssql-server

8) Para conectar na instancia do SQL Server você precisa instalar o utilitário SQLCMD. Isso serve se você estiver conectado na propria máquina virtual.

Você precisará estar em modo super usuário. Para entrar nesse modo execute.

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo

image

saia do modo super usuário

exit

Execute o seguinte comando

sudo yum install mssql-tools

image

Durante essa instalação o shell irá pedir algumas vezes para você aceitar os termos, e ai dependendo você terá que preencher com  Y ou y ou YES. Porém não se preocupe, é bem explicito que você precisa tomar uma ação. Se tudo ocorrer bem, você deverá ver a tela abaixo.

image

Para conectar basta executar o seguinte comando.

sqlcmd -S myserver -U sa

image

9) Mas para conectar remotamente? Primeiro na console do Azure você precisa liberar o Endpoint do SQL Server.

image

image

Se você desejar pode mudar a porta publica para um outro número de preferencia. Assim que a console finalizar a configuração é só utilizar o SQL Server Management Studio.

image

Pronto! Você está conectado em uma instancia de SQL Server rodando em Linux..

image

Segue também as varias documentações que utilizei para chegar no resultado final.

https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux
https://docs.microsoft.com/pt-br/sql/linux/sql-server-linux-setup-red-hat
https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-ssh-from-windows
https://docs.microsoft.com/pt-br/sql/linux/sql-server-linux-setup-tools#RHEL

Espero que vocês gostem dessa postagem, apesar de ela ter ficado um pouco grande Alegre

Abraços e um ótimo 2017 a todos vocês!
Marcos Freccia
Data Platform MVP

Advertisements

About Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Posted on January 2, 2017, in Administração, SQL Server, SQL Server no Linux, VirtualPass and tagged , , , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: