Posso executar o SQL Server no Ubuntu?

10

Minha empresa desenvolve software com dois lados: cliente e servidor. Instalei o Microsoft SQL Server no Windows e estou executando o lado do cliente no Ubuntu com algumas configurações.

Mas estou me perguntando: existe uma maneira de executar o Ubuntu como servidor e instalar o SQL Server nele?

Jester
fonte

Respostas:

9

Você certamente pode tentar a abordagem que descreverei abaixo, mas não sei se alguém já tentou com sucesso.

  1. Instale o software de virtualização na sua máquina Ubuntu (VMWare, Xen, VirtualBox).
  2. Instale o Microsoft Windows Server na máquina virtual.
  3. Instale o MS SQL Server no Windows Server recém-instalado.

Não sei se outra maneira funcionaria, mas as pessoas podem me corrigir o MS SQL Server, pelo que me lembro, na verdade, depende do Licenciamento para Microsoft Windows Server. Além disso, o SQLServer é um péssimo recurso, portanto, normalmente as organizações tentam separá-lo da execução com outros aplicativos em seu próprio cluster ou servidor.

Uma coisa que eu questionaria é por que não tentar o Sybase como back-end? A conectividade do Linux ao SQLServer e Sybase pode passar FreeTDS, o que pareceria idêntico ao seu software cliente.

Karlson
fonte
11
Bem, isso responde à minha pergunta, obrigado. Eu não gerencio o banco de dados aqui, temos um monte de programadores, estou trabalhando no lado do cliente e instalamos o servidor e o cliente. Atualmente, estou virtualizando um ubuntu na minha máquina Windows para executar um monte de teste para ver se o ubuntu funcionaria. Com cliente sim. No servidor .... não tão bem, pois o SQL nunca funcionaria no Linux. Obrigado pela sua resposta
Jester
11
@Karlson: Costumava ser verdade, mas agora desatualizado, no final de novembro de 2016. #
WitchCraft 15/16/16
Esse URL pode ter parecido um conto de fadas na época docs.microsoft.com/en-us/sql/linux/…
Asim
5

AVISO: ABRAÇAR - ESTENDER - GOTA   ?

Sim, no final de novembro de 2016 e no docs.microsoft.com , você pode instalar a visualização pública do sql-server vNext CTP1 no Ubuntu 16.04 (não funciona no 14.04 porque o pacote OpenSSL está desatualizado e não funciona no 19.04 porque o pacote OpenSSL é muito novo):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/sqlservr-setup

ou mais recente

sudo /opt/mssql/bin/mssql-conf setup

Para removê-lo

sudo apt-get remove --purge mssql-server

Para remover os bancos de dados gerados

sudo rm -rf /var/opt/mssql/

Se você deseja verificar se funciona ou não, não se esqueça de desligar o firewall

iptables -F
iptables -P INPUT ACCEPT  

Você pode iniciar o SQL-Server com:

systemctl start mssql-server

Você pode parar o SQL-Server com:

systemctl stop mssql-server

Para ver seu status:

systemctl status mssql-server

Para iniciar o sql-server no momento da inicialização:

systemctl enable mssql-server

Para desativar o SQL-Server-start no momento da inicialização:

systemctl disable mssql-server

E se você também quiser as ferramentas de linha de comando

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update 
sudo apt-get install mssql-tools

Para testá-lo

sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit

E para abrir permanentemente a porta 1433 (porta padrão do servidor sql)

iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

ou, se você usa o ufw, pode fazer o mesmo digitando menos com

ufw allow 1433/tcp

Veja também persistência de firewall e isso

Para o Red Hat (firewalld):

firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload

Se você não quiser trabalhar com ferramentas de linha de comando, poderá conectar-se ao SSMS a partir de um laptop Windows.

SSMS


Se você não puder usar o sql-server na sua distribuição (openssl muito antigo / openssl muito novo / distribuição não suportada), poderá sempre usar a imagem do docker:

sudo apt-get install docker.io 
docker pull mcr.microsoft.com/mssql/server:2017-latest

docker run -d -p 2017:1433 --name mssql_2017 -e MSSQL_SA_PASSWORD =TOP_SECRET -e ACCEPT_EULA=Y  -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

que instala a janela de encaixe, puxa a imagem de encaixe-linux-imagem mais recente do SQL-Server-2017 da Internet e mapeia a porta 1433 no contêiner para a porta 2017 no host e define a licença para "Desenvolvedor", a sa-Password para TOP_SECRET e Ele também mapeia / var / opt / mssql no contêiner para / var / opt / mssql no host. Você pode ter que criar essa pasta com mkdir -p /var/opt/mssql.

A partir daí, você pode iniciar o contêiner docker start mssql_2017e interromper o contêiner docker stop mssql_2017.

Para trabalhar graficamente com o sql-server no Linux, você pode usar o AzureDataStudio , baixar o pacote deb da página do github e instalá-lo comsudo dpkg -i azuredatastudio-linux-1.12.2.deb

Feitiçaria
fonte
Veja também askubuntu.com/questions/850957/…
WitchCraft 6/17
Talvez seja necessário criar um link simbólico para obter sqlcmdfuncionar após a instalação MSSQL-tools askubuntu.com/a/870928/8151
Niroshan