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


10

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

但是我想知道:是否有一种方法可以代替运行Ubuntu作为服务器并在其上安装SQL Server?

Answers:


9

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

  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,这看起来与您的客户端软件相同。


1
好吧,这回答了我的问题,谢谢。我不在这里管理数据库,我们有很多程序员,我在客户端工作,我们同时安装服务器和客户端。我目前正在Windows机器上虚拟化ubuntu,以运行一堆测试以查看ubuntu是否可以工作。与客户是的。在服务器上...不是很好,因为SQL在Linux上永远无法运行。感谢您的回答
小丑

1
@Karlson:以前是真的,但现在已经过时了,2016
。– WitchCraft


5

警告:拥抱-扩展-删除   ?

是的,截至2016年11月底和docs.microsoft.com,您可以在Ubuntu 16.04上安装sql-server vNext CTP1的公共预览(在14.04上不起作用,因为OpenSSL软件包已过时,并且没有无法在19.04上使用,因为OpenSSL软件包太新了):

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,则可以通过以下方式少键入

ufw allow 1433/tcp

另请参阅防火墙持久性

对于Red Hat(防火墙):

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

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

短信服务


如果您不能在发行版上使用sql-server(openssl太旧/ openssl太新/不支持发行版),那么您始终可以使用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

安装docker,从互联网提取最新的SQL-Server-2017 docker-linux-image并将容器中的端口1433映射到主机中的端口2017,并将许可证设置为“ Developer”,将sa-Password设置为TOP_SECRET和它还将容器上的/ var / opt / mssql映射到主机上的/ var / opt / mssql。您可能必须使用创建该文件夹mkdir -p /var/opt/mssql

从那里开始,您可以使用启动容器,docker start mssql_2017并使用停止容器docker stop mssql_2017

要在Linux上以图形方式使用sql-server,可以使用AzureDataStudio,从其github页面下载deb-package,然后使用sudo dpkg -i azuredatastudio-linux-1.12.2.deb



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.