我可以在Ubuntu上运行SQL Server吗?

我公司开发的软件有两个方面:客户端和服务器。 我在Windows上安装了Microsoft SQL Server,并在Ubuntu上运行客户端并进行了一些配置。

但我想知道:有没有办法将Ubuntu作为服务器运行并在其上安装SQL Server?

您当然可以尝试我将在下面概述的方法,但我不知道是否有人成功尝试过。

  1. 在Ubuntu计算机上安装虚拟化软件(VMWare,Xen,VirtualBox)。
  2. 在虚拟机中安装Microsoft Windows Server。
  3. 在新安装的Windows Server上安装MS SQL Server。

我不知道是否有任何其他方式可行,但人们可以从我记得的MS SQL Server中纠正我实际上依赖于Microsoft Windows Server的许可。 除此之外,SQLServer是一个非常糟糕的资源占用,因此通常组织会尝试将其与运行在其自己的集群或服务器上的任何其他应用程序隔离开来。

我要问的一件事是为什么不尝试使用Sybase作为后端? 从Linux到SQLServer和Sybase的连接可以通过FreeTDS ,它看起来与您的客户端软件完全相同。

警告: EMBRACE – EXTEND – DROP

是的,根据2016年11月底,并且根据docs.microsoft.com ,您可以在Ubuntu 16.04上安装sql-server vNext CTP1的公共预览(由于OpenSSL包过时,因此无法在14.04上运行):

 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 

或者更新

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

要删除它

 sudo apt-get remove --purge mssql-server 

删除生成的数据库

 sudo rm -rf /var/opt/mssql/ 

如果要检查它是否有效,请不要忘记关闭防火墙

 iptables -F iptables -P INPUT ACCEPT 

您可以使用以下命令启动SQL-Server:

 systemctl start mssql-server 

您可以使用以下命令停止SQL Server:

 systemctl stop mssql-server 

要查看其状态:

 systemctl status mssql-server 

要在启动时启动sql-server:

 systemctl enable mssql-server 

要在启动时禁用SQL-Server-start:

 systemctl disable mssql-server 

如果你也想要命令行工具

 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 

测试它

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

并永久打开端口1433(sql-server default-port)

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

或者如果你使用ufw,你可以通过输入less来做同样的事情

 ufw allow 1433/tcp 

另请参阅防火墙持久性和此

对于Red Hat(firewalld):

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

如果您不想使用命令行工具,则可以从Windows笔记本电脑连接SSMS。

SSMS