「SQL Serverを用いたシステムを開発したい」
「Ubuntu上でSQL Serverを動かしたい」
このような場合には、この記事の内容が参考になります。
この記事では、UbuntuにSQL Serverをインストールする方法を解説しています。
本記事の内容
- SQL Server on Linuxとは?
- SQL Server on Linuxのシステム要件
- SQL Server on Linuxのインストール
- SQL Server on Linuxの動作確認
それでは、上記に沿って解説していきます。
SQL Server on Linuxとは?
SQL Server on Linuxとは、名前の通りLinuxで動くSQL Serverになります。
そもそも、以前はSQL ServerはWindows専用のデータベースでした。
それをLinuxでも動くようにしたということでしょう。
ただし、SQL Server on Linuxはオープンソースではありません。
一応、無償版も用意されています。
しかし、無償版をシステムで本格的に利用するのは難しいでしょう。
用意されているSQL Server のエディションは、以下があります。
- Enterprise(有償)
- Standard(有償)
- Web(有償)
- 開発者(無料)
- Express Edition(無料)
開発者版であれば、制限なしでEnterprise版と同機能を利用できます。
もちろん、その場合は製品化はできません。
それでも、開発用にライセンスを購入しなくて済みます。
これは、何気に凄いことですね。
以上、SQL Server on Linuxを説明しました。
次は、SQL Server on Linuxのシステム要件を説明します。
SQL Server on Linuxのシステム要件
現時点(2022年7月)でのSQL Server on Linuxの最新バージョンは、SQL Server 2022 (16.x)となります。
この最新バージョンは、2022年6月にリリースされています。
ただし、これは正式版ではありません。
「Preview」とあるように、ベータ版と捉えた方がよいでしょう。
そうは言っても、基本的なシステム要件は正式版と変わらないはずです。
インストール方法も同じことでしょう。
よって、SQL Server 2022が正式版でもこの記事の内容は有効と言えます。
では、SQL Server on Linuxのシステム要件を説明していきます。
サポートされているプラットフォームは、以下。
プラットフォーム | ファイル システム |
---|---|
Red Hat Enterprise Linux 8.0 – 8.5 Server | XFS または EXT4 |
Ubuntu 20.04 LTS | XFS または EXT4 |
Linux 上の Docker エンジン 1.8 以降 | 該当なし |
そして、公式ではシステム要件が次のように記載されています。
要件 | |
---|---|
[メモリ] | 2 GB |
ファイル システム | XFS または EXT4 (BTRFS などの他のファイル システムはサポートされていません) |
ディスク領域 | 6 GB |
プロセッサの速度 | 2 GHz |
プロセッサのコア数 | 2 コア |
プロセッサの種類 | x64 互換のみ |
よほど古いマシンでない限りは、このシステム要件は問題ないでしょう。
そうだとすると、気になるのはUbuntu 20.04 LTSのみがサポート対象と言うことになります。
正式版の公開時には、Ubuntu 22.04 LTSも追記されるといいのですけどね。
おそらく、それはないとは思いますけど。
以上、SQL Server on Linuxのシステム要件を説明しました。
次は、SQL Server on Linuxのインストールを説明します。
SQL Server on Linuxのインストール
UbuntuへのSQL Server on Linuxのインストールは、PPAを利用します。
PPAは、Ubuntu公式以外のリポジトリを指します。
しかし、今回利用するのはマイクロソフトのパブリックなリポジトリです。
個人が勝手に公開しているモノではないので、安心して利用できます。
なお、リポジトリ登録には次のコマンドを利用します。
- apt-key
- add-apt-repository
これらのコマンドが利用できない場合は、次のパッケージをインストールしておきましょう。
sudo apt-get install software-properties-common apt-transport-https
準備が整ったら、SQL Server on Linuxのインストールを進めます。
まずは、リポジトリのGPGキーのインポートです。
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
SQL Server Ubuntuリポジトリを登録します。
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-preview.list)"
リポジトリを登録できたら、パッケージリスト更新を行います。
sudo apt-get update
この時点でmssql-serverパッケージが認識可能となっています。
$ sudo apt info mssql-server Package: mssql-server Version: 16.0.600.9-2 Priority: extra Section: misc Maintainer: Microsoft Data Platform Group <dpgswdist@microsoft.com> Installed-Size: 1,591 MB Depends: libatomic1, libunwind8, libnuma1, libc6, adduser, libc++1, gdb, debconf, hostname, openssl (>= 1.0.1g), python3, libgssapi-krb5-2, libsss-nss-idmap0, gawk, sed, libpam0g, libldap-2.4-2, libsasl2-2, libsasl2-modules-gssapi-mit, tzdata Conflicts: mssql-server-agent Breaks: mssql-server-fts (<< 16) Replaces: mssql-server-agent Download-Size: 585 MB APT-Manual-Installed: yes APT-Sources: https://packages.microsoft.com/ubuntu/20.04/mssql-server-preview focal/main amd64 Packages Description: Microsoft SQL Server Relational Database Engine The mssql-server package contains the Microsoft SQL Server Relational Database Engine.
パッケージの情報が確認できれば、あとはインストールするだけです。
sudo apt-get install -y mssql-server
インストールには、そこそこ時間がかかります。
インストールが完了したら、設定を行います。
SQL Server on Linuxの設定には、次のコマンドを用います。
sudo /opt/mssql/bin/mssql-conf setup
上記コマンドを実行すると、次のように表示されます。
$ sudo /opt/mssql/bin/mssql-conf setup SQL Server のエディションを選択します: 1) Evaluation (無料、製品使用権なし、期限 180 日間) 2) Developer (無料、製品使用権なし) 3) Express (無料) 4) Web (有料) 5) Standard (有料) 6) Enterprise (有料) - CPU Core utilization restricted to 20 physical/40 hyperthreaded 7) Enterprise Core (有料) - CPU Core utilization up to Operating System Maximum 8) 小売販売チャネルを介してライセンスを購入し、入力するプロダクト キーを持っています。 エディションの詳細については、以下を参照してください https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x411 このソフトウェアの有料エディションを使用するには、個別のライセンスを以下から取得する必要があります Microsoft ボリューム ライセンス プログラム。 有料エディションを選択することは、 このソフトウェアをインストールおよび実行するための適切な数のライセンスがあることを確認していることになります。 エディションを入力してください(1-8):
とりあえず、ここでは無料で使える「Express」を選択します。
(プレビュー版は、ExpressであってもEvaluation扱いになり使用期限が存在します)
よって、「3」を入力してEnterを押します。
エディションを入力してください(1-8): 3 この製品のライセンス条項は /usr/share/doc/mssql-server で参照できるほか、次の場所からダウンロードすることもできます: https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x411 プライバシーに関する声明は、次の場所で確認できます: https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x411 ライセンス条項に同意しますか? [Yes/No]:
ライセンス条項には、もちろん「Yes」を入力してEnter。
ライセンス条項に同意しますか? [Yes/No]:Yes SQL Server の言語の選択: (1) English (2) Deutsch (3) Español (4) Français (5) Italiano (6) 日本語 (7) 한국어 (8) Português (9) Руѝѝкий (10) 中文 – 简体 (11) 中文 (繝体) オプション 1-11 を入力:
言語は、日本語「6」を選択。
オプション 1-11 を入力: 6 SQL Server システム管理者パスワードを入力してください:
パスワードは、次の条件を満たす必要があります。
パスワードは 8 文字以上にし、大文字、小文字、数字、記号の 4 つのセットからいずれか 3 種類の文字を含める必要があります。
パスワードを入力したら、処理が開始されます。
環境によりますが、これも時間がかかりました。
ライセンス PID は正常に処理されました。新しいエディションは [Express Edition] です。 ForceFlush is enabled for this instance. ForceFlush feature is enabled for log durability. DBSTARTUP (master, 1): InitPersistentVersionStoreTime took 702 ms DBSTARTUP (master, 1): InitalizeForScansTime took 976 ms DBSTARTUP (master, 1): PhysicalCompletionTime took 505 ms DBSTARTUP (master, 1): PhysicalRecoveryTime took 580 ms DBSTARTUP (master, 1): RecoveryCompletionTime took 621 ms DBSTARTUP (master, 1): RedoRecTime took 317 ms DBSTARTUP (master, 1): RemapSysfiles1Time took 207 ms DBSTARTUP (master, 1): StartupInDatabaseTime took 43553 ms DBSTARTUP (master, 1): UpgradeTime took 42731 ms DBSTARTUP (model, 3): FileMgrPreRecoveryTime took 185 ms DBSTARTUP (model, 3): InitPersistentVersionStoreTime took 157 ms DBSTARTUP (model, 3): InitalizeForScansTime took 181 ms DBSTARTUP (model, 3): LogMgrPreRecoveryTime took 302 ms DBSTARTUP (model, 3): PhysicalCompletionTime took 203 ms DBSTARTUP (model, 3): PhysicalRecoveryTime took 254 ms DBSTARTUP (model, 3): RemapSysfiles1Time took 739 ms DBSTARTUP (model, 3): StartupInDatabaseTime took 22567 ms DBSTARTUP (model, 3): UpgradeTime took 20813 ms DBSTARTUP (msdb, 4): FileMgrPreRecoveryTime took 135 ms DBSTARTUP (msdb, 4): InitPersistentVersionStoreTime took 954 ms DBSTARTUP (msdb, 4): InitalizeForScansTime took 1842 ms DBSTARTUP (msdb, 4): OIBCleanupTime took 130 ms DBSTARTUP (msdb, 4): PhysicalCompletionTime took 1070 ms DBSTARTUP (msdb, 4): PhysicalRecoveryTime took 761 ms DBSTARTUP (msdb, 4): RedoRecTime took 330 ms DBSTARTUP (msdb, 4): RemapSysfiles1Time took 1971 ms DBSTARTUP (msdb, 4): StartupInDatabaseTime took 47910 ms DBSTARTUP (msdb, 4): UpgradeTime took 34010 ms Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service. セットアップは正常に完了しました。SQL Server を起動しています。
以上、SQL Server on Linuxのインストールを説明しました。
次は、SQL Server on Linuxの動作確認を行います。
SQL Server on Linuxの動作確認
SQL Server on Linuxの起動状況を確認します。
$ systemctl status mssql-server --no-pager ● mssql-server.service - Microsoft SQL Server Database Engine Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-07-16 10:48:13 JST; 6min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 96344 (sqlservr) Tasks: 219 Memory: 985.8M CGroup: /system.slice/mssql-server.service ├─96344 /opt/mssql/bin/sqlservr └─96376 /opt/mssql/bin/sqlservr 〜
正常に起動していることを確認できます。
次は、SQL Server に接続してデータベースを作成してみましょう。
本来なら、このようになるはずです。
しかし、現状では何もできません。
現状、SQL Serverに接続する手段がありません。
SQL Serverサーバーをインストールしただけの状態ということです。
つまり、SQL Serverクライアントは何もインストールできていません。
データベースにおけるサーバーとクライアントについては、次の記事で説明しています。
今回はここまでとします。
SQL Serverクライアントについては、次の記事で説明しています。
以上、SQL Server on Linuxの動作確認を説明しました。