我公司开发的软件有两个方面:客户端和服务器。我已经在 Windows 上安装了 Microsoft SQL Server,并且正在使用一些配置在 Ubuntu 上运行客户端。
但我想知道:有没有办法将 Ubuntu 作为服务器运行并在其上安装 SQL Server?
您当然可以尝试我将在下面概述的方法,但我不知道是否有人成功尝试过。
我不知道是否还有其他方法可行,但人们可以纠正我,我记得的 MS SQL Server 实际上依赖于 Microsoft Windows Server 的许可。最重要的是,SQLServer 是一个非常糟糕的资源猪,因此通常组织会尝试将其与在其自己的群集或服务器上运行的任何其他应用程序隔离开来。
我会质疑的一件事是为什么不尝试将 Sybase 作为后端?从 Linux 到 SQLServer 和 Sybase 的连接可以通过FreeTDS,这看起来与您的客户端软件相同。
是的,根据 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
Run Code Online (Sandbox Code Playgroud)
或更新
sudo /opt/mssql/bin/mssql-conf setup
Run Code Online (Sandbox Code Playgroud)
删除它
sudo apt-get remove --purge mssql-server
Run Code Online (Sandbox Code Playgroud)
删除生成的数据库
sudo rm -rf /var/opt/mssql/
Run Code Online (Sandbox Code Playgroud)
如果您想检查它是否有效,请不要忘记关闭防火墙
iptables -F
iptables -P INPUT ACCEPT
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令启动 SQL-Server:
systemctl start mssql-server
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式停止 SQL-Server:
systemctl stop mssql-server
Run Code Online (Sandbox Code Playgroud)
查看它的状态:
systemctl status mssql-server
Run Code Online (Sandbox Code Playgroud)
在启动时启动 sql-server:
systemctl enable mssql-server
Run Code Online (Sandbox Code Playgroud)
要在启动时禁用 SQL-Server-start:
systemctl disable mssql-server
Run Code Online (Sandbox Code Playgroud)
如果您还需要命令行工具
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
Run Code Online (Sandbox Code Playgroud)
测试一下
sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit
Run Code Online (Sandbox Code Playgroud)
并永久开放端口 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
Run Code Online (Sandbox Code Playgroud)
或者如果你使用 ufw,你可以通过输入 less 来做同样的事情
ufw allow 1433/tcp
Run Code Online (Sandbox Code Playgroud)
对于红帽(防火墙):
firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)
如果您不想使用命令行工具,可以从 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
Run Code Online (Sandbox Code Playgroud)
安装 docker,从 Internet 拉取最新的 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
| 归档时间: |
|
| 查看次数: |
24658 次 |
| 最近记录: |