AVISO:ABRAÇAR - ESTENDER - DEIXAR  ?

AVISO:ABRAÇAR - ESTENDER - DEIXAR  ?

Minha empresa desenvolve software com duas faces: 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?

Responder1

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

  1. Instale software de virtualização em 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 alguma outra maneira funcionaria, mas as pessoas podem me corrigir, o MS SQL Server, pelo que me lembro, na verdade depende do licenciamento do Microsoft Windows Server. Além disso, o SQLServer é um péssimo consumidor de recursos, então normalmente as organizações tentam separá-lo da execução de quaisquer outros aplicativos em seu próprio cluster ou servidor.

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

Responder2

AVISO:ABRAÇAR - ESTENDER - DEIXAR  ?

Sim, no final de novembro de 2016 e conformedocs.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 quiser verificar se funciona ou não, não 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 desabilitar o início do SQL-Server no momento da inicialização:

systemctl disable mssql-server

E se você também quiser oferramentas 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 testar

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

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

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ê usar ufw, poderá fazer o mesmo digitando menos com

ufw allow 1433/tcp

Veja tambémpersistência de firewalleesse

Para Red Hat (firewall):

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

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

SSMS


Se você não pode usar o sql-server em sua distribuição (openssl muito antigo/openssl muito novo/distro não suportado), você sempre pode 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 o docker, extrai o SQL-Server-2017 docker-linux-image mais recente da Internet e mapeia a porta 1433 no contêiner para a porta 2017 no host e define a licença como "Desenvolvedor", a senha sa como TOP_SECRET e ele também mapeia /var/opt/mssql no contêiner para /var/opt/mssql no host. Talvez seja necessário criar essa pasta com mkdir -p /var/opt/mssql.

A partir daí, você pode iniciar o contêiner docker start mssql_2017e interrompê-lo com docker stop mssql_2017.

Para trabalhar graficamente com sql-server no Linux, você pode usarAzureDataStudio, Faça o download dopacote debde sua página do github e instale-o comsudo dpkg -i azuredatastudio-linux-1.12.2.deb

informação relacionada