警告:抱擁 - 拡張 - ドロップ  ?

警告:抱擁 - 拡張 - ドロップ  ?

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

しかし、疑問に思うのは、Ubuntu をサーバーとして実行し、その上に SQL Server をインストールする方法はあるのでしょうか?

答え1

以下に概説するアプローチを試すことは確かに可能ですが、誰かがそれを試して成功したかどうかはわかりません。

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

他の方法が機能するかどうかはわかりませんが、私の記憶では、MS SQL Server は実際には Microsoft Windows Server のライセンスに依存していることを訂正していただけると幸いです。さらに、SQL Server はリソースを大量に消費するため、通常、組織は SQL Server を独自のクラスターまたはサーバーで他のアプリケーションと一緒に実行しないように分離しようとします。

私が疑問に思うことの 1 つは、なぜバックエンドとして Sybase を試さないのかということです。Linux から SQL Server および Sybase への接続は を経由することができFreeTDS、これはクライアント ソフトウェアと同一のように見えます。

答え2

警告:抱擁 - 拡張 - ドロップ  ?

はい、2016年11月末現在、ドキュメント、Ubuntu 16.04 に sql-server vNext CTP1 のパブリック プレビューをインストールできます (OpenSSL パッケージが古いため 14.04 では動作しません。また、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 の起動を無効にするには:

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のデフォルトポート)を永続的に開くには

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


ディストリビューションで 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をグラフィカルに操作するには、Azureデータスタジオ、ダウンロードdeb パッケージgithubページからダウンロードしてインストールしてくださいsudo dpkg -i azuredatastudio-linux-1.12.2.deb

関連情報