UbuntuでSQL Serverを実行できますか?


10

私の会社は、クライアントとサーバーの2つの側面を持つソフトウェアを開発しています。WindowsにMicrosoft SQL Serverをインストールし、いくつかの構成でUbuntuでクライアント側を実行しています。

しかし、私は疑問に思っています:代わりにUbuntuをサーバーとして実行し、それにSQL Serverをインストールする方法はありますか?

回答:


9

以下で概説するアプローチは確かに試すことができますが、誰かがうまく試したかどうかはわかりません。

  1. Ubuntuマシンに仮想化ソフトウェアをインストールします(VMWare、Xen、VirtualBox)。
  2. 仮想マシンにMicrosoft Windows Serverをインストールします。
  3. 新しくインストールしたWindows ServerにMS SQL Serverをインストールします。

他の方法が機能するかどうかはわかりませんが、実際にMicrosoft Windows Serverのライセンスに依存していることを覚えていることから、人々はMS SQL Serverを修正できます。このSQLServerの上にはかなりひどいリソースが消費されるため、通常、組織は独自のクラスターまたはサーバー上の他のアプリケーションと一緒に実行しないようにします。

私が疑問に思うことの1つは、Sybaseをバックエンドとして試してみませんか?LinuxからSQLServerおよびSybaseへの接続はを通過できますがFreeTDS、これはクライアントソフトウェアと同じように見えます。


1
さて、これは私の質問への回答です、ありがとう。ここではデータベースを管理していません。プログラマーがたくさんいます。クライアント側で作業しており、サーバーとクライアントの両方をインストールします。現在、Windowsマシンでubuntuを仮想化して、ubuntuが機能するかどうかを確認するための一連のテストを実行しています。クライアントとはい。サーバー上では... SQLはLinuxで動作しないため、うまくいきません。あなたの答えをありがとう
Jester

1
@Karlson:かつては真実でしたが、2016
。– WitchCraft

このURLは、当時はおとぎ話のよう でした。docs.microsoft.com/ en
Asim

5

警告:EMBRACE-EXTEND-DROP   ?

はい、2016年11月の終わりあたりとして、そしてごとにdocs.microsoft.com、あなたがUbuntuの16.04(上のSQLサーバーvNext CTP1のパブリックプレビューをインストールすることができ14.04上の作業は、OpenSSLのパッケージが古くなっていないため、とのdoesn OpenSSLパッケージが新しすぎるため、19.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(ファイアウォール)の場合:

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

コマンドラインツールを使用したくない場合は、WindowsラップトップからSSMSに接続できます。

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



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.