Neste artigo, discutiremos como instalar o Microsoft SQL ou MSSQL no Linux. Microsoft SQL, coloquialmente conhecido como MSSQL, é um sistema de gerenciamento de banco de dados relacional criado pela Microsoft. MySQL e PostgreSQL de código aberto normalmente são sinônimos de distribuições Linux, mas o trabalho com MSSQL no Linux também é suportado. O MSSQL oferece alguns recursos que suas contrapartes de código aberto não oferecem e, dependendo dos requisitos do aplicativo, pode ser a escolha certa para um RDBMS. Neste tutorial, veremos como instalar o MSSQL no CentOS 7 e no Ubuntu 16.04.
Verificação pré-voo
- Você precisará verificar se seu servidor tem pelo menos 2 GB de memória
- Estas instruções estão sendo executadas nos servidores CentOS 7 e Ubuntu 16.04 LTS, respectivamente, como usuário root
CentOS 7
Etapa 1:adicionar repositório de visualização do MSSQL 2019
Primeiro, como prática recomendada, certifique-se de que todos os pacotes estejam atualizados:
root@centos ~]# yum update -y
Em seguida, precisamos informar ao gerenciador de pacotes yum onde procurar o pacote mssql-server adicionando o repositório apropriado:
root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
Etapa 2:instalar o SQL Server
Agora que o yum está ciente do repositório MSSQL, podemos usar o yum para instalar o pacote:
root@centos ~]# yum install -y mssql-server
Etapa 3:configurar o servidor MSSQL
Em seguida, precisamos configurar o SQL com uma senha de administrador do sistema e confirmar a edição que queremos usar. Este tutorial usará a edição Developer, opção 2, pois é gratuita:
root@centos ~]# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
Depois disso, precisamos verificar se o serviço mssql está em execução:
root@centos ~]# systemctl status mssql-server
A saída deve ser algo como isto:
mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-10-23 20:18:03 EDT; 2min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 61529 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─61529 /opt/mssql/bin/sqlservr
└─61549 /opt/mssql/bin/sqlservr
Etapa 4 (opcional):permitir conexões remotas
Se você deseja que seu servidor SQL seja acessível remotamente, você terá que abrir a porta do SQL Server:
Observação :Prossiga com cuidado. Os firewalls estão em vigor para manter seu servidor seguro, limitando o acesso a ele. A menos que você planeje acessar o SQL Server remotamente, não é necessário abrir essa porta.
root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
Depois de adicionar a regra, precisamos recarregar nossas regras de firewall e verificar se a porta está aberta:
[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp
Etapa 5:adicionar o repositório Microsoft Red Hat
Agora, precisamos de uma maneira de interagir com nosso servidor SQL. Primeiro, vamos adicionar outro repositório para que possamos usar o yum para instalar as ferramentas de linha de comando do SQL Server
root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Etapa 6:instalar e configurar as ferramentas de linha de comando do MSSQL Server
Agora que o yum está ciente dos pacotes que queremos instalar, precisamos instalá-los. É importante observar que, durante a instalação desses pacotes, haverá alguns prompts interativos para aceitar os termos da licença:
root@centos ~]# yum install -y mssql-tools unixODBC-devel
Para facilitar o uso, podemos adicionar o caminho
/opt/mssql-tools/bin/
para a variável PATH no servidor para que possamos executar comandos sql de qualquer local no servidor:
root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@centos ~]# source ~/.bashrc
A etapa final é verificar se podemos fazer uma conexão com o SQL Server:
root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>
Ubuntu 18.04 LTS
Etapa 1:adicionar repositório de visualização do MSSQL Server Ubuntu 2019
Primeiro, vamos atualizar os pacotes do servidor:
root@ubuntu1604:~# apt-get update -y
Uma vez que os pacotes do servidor são atualizados, precisamos adicionar as chaves GPG para o repositório que queremos adicionar. As chaves GPG são uma maneira de os usuários do Linux verificarem a validade dos arquivos e confirmarem que eles vêm de fontes confiáveis:
t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Agora que as chaves GPG estão no lugar, podemos adicionar o repositório:
root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"
O repositório que acabamos de adicionar requer uma conexão HTTPS. Para garantir que o apt possa se conectar ao repositório, precisamos ter certeza de que ele pode se conectar por https:
root@ubuntu1604:~# apt-get install -y apt-transport-https
Etapa 2:Instale o MSSQL Server
Agora que o repositório contendo os pacotes do MSSQL Server está disponível, tudo o que resta a fazer é garantir que o apt conheça o novo repositório e instale o MSSQL Server:
apt-get update -y
apt-get install -y mssql-server
Etapa 3:configurar o servidor MSSQL
A etapa de configuração é a mesma no CentOS 7 e no Ubuntu 16.04. Durante o processo de configuração, haverá prompts interativos para escolher a edição do SQL Server, aceitar os termos da licença e inserir uma senha de administrador do SQL:
root@ubuntu1604:~# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
O MSSQL Server agora deve estar em execução e habilitado. Para verificar se esse é, de fato, o caso, podemos executar este comando:
root@ubuntu1604:~# systemctl status mssql-server --no-pager
* mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 00:24:23 EDT; 3min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 19446 (sqlservr)
Tasks: 135
Memory: 548.5M
CPU: 12.499s
CGroup: /system.slice/mssql-server.service
|-19446 /opt/mssql/bin/sqlservr
`-19485 /opt/mssql/bin/sqlservr
Etapa 4 (opcional):permitir conexões remotas
Se você pretende utilizar uma conexão remota com seu novo SQL Server, será necessário abrir a porta do SQL Server:
Observação :Novamente prossiga com cautela. Os firewalls estão em vigor para manter seu servidor seguro, limitando o acesso a ele. A menos que você planeje acessar o SQL Server remotamente, não é necessário abrir essa porta.
Para manter nossas interações de firewall sucintas, instale o ufw, também conhecido como Firewall Descomplicado:
root@ubuntu1604:~# apt-get install -y ufw
Uma vez instalado, o ufw deve ser ativado. Você verá um aviso indicando que sua conexão SSH pode ser interrompida. Se sua sessão SSH estiver desconectada, faça login novamente e continue:
root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup
Agora que o ufw está em vigor e ativado, é hora de permitir o tráfego para a porta 1433:
root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)
Etapa 5:instalar e configurar as ferramentas de linha de comando do MSSQL Server
Primeiro, como fizemos antes, precisamos adicionar algumas novas chaves GPG para o repositório que contém as ferramentas de linha de comando MSSQL:
root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Agora podemos adicionar o repositório:
root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list
Depois disso, atualize o apt e instale as ferramentas de linha de comando:
root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev
Deve haver um ou dois prompts interativos para aceitar licenças durante a instalação que se pareçam com isto:
Vamos facilitar a execução do sqlcmd em qualquer lugar do servidor:
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
root@ubuntu1604:~# source ~/.bashrc
Finalmente, é hora de verificar se podemos nos conectar ao MSSQL Server localmente:
root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>
Comece hoje mesmo!
Você precisa configurar um sistema de banco de dados alternativo como MSSQL no Linux? Precisa de ajuda para configurar um banco de dados existente ou solucionar um problema relacionado que o deixou frustrado? Temos algumas das melhores mentes do setor trabalhando para a Liquid Web e estamos de prontidão 24 horas por dia, 365 dias por ano, apenas esperando para provar isso! Podemos intervir a qualquer momento para fornecer a assistência necessária para resolver os problemas.