SQL Server 2019 ExpressをUbuntu Server 20.04へインストール

以前、SQL Server 2017をUbuntu Server 16.04にインストールしたことがあります。
SQL Server 2017 vNext(14.0)をUbuntu Server 16.04にインストール

今回は、SQL Server 2019をUbuntu Server 20.04へインストールしてみます。


インストール



前回の手順とこちらを参考にしました。
https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15

GPGキーをインポート

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -



リポジトリを追加

$ sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"



更新してSQL Serverのインストールを実行

$ sudo apt-get update
$ sudo apt-get install -y mssql-server



これでインストールは完了です。



初期セットアップ



インストールが完了したら、指定通り初期セットアップのコマンドを実行します。

$ sudo /opt/mssql/bin/mssql-conf setup




エディションの選択やライセンス認証、管理者権限(sa)のパスワード入力を求められます。

$ sudo /opt/mssql/bin/mssql-conf setup
usermod: 変更はありません
SQL Server のエディションを選択します:
1) Evaluation (無料、製品使用権なし、期限 180 日間)
2) Developer (無料、製品使用権なし)
3) Express (無料)
4) Web (有料)
5) Standard (有料)
6) Enterprise (有料) - CPU コアの使用率は、20 個の物理コア、またはハイパースレッドが有効にされた 40 個に制限されています
7) Enterprise Core (有料) - CPU コアの使用率は、オペレーティング システムの最大までです
8) 小売販売チャネルを介してライセンスを購入し、入力するプロダクト キーを持っています。

エディションの詳細については、以下を参照してください
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x411

このソフトウェアの有料エディションを使用するには、個別のライセンスを以下から取得する必要があります
Microsoft ボリューム ライセンス プログラム。
有料エディションを選択することは、
このソフトウェアをインストールおよび実行するための適切な数のライセンスがあることを確認していることになります。

エディションを入力してください(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


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
SQL Server システム管理者パスワードを入力してください: [任意のパスワード入力]
SQL Server システム管理者パスワードを確認入力してください: [上記と同じパスワード入力]
SQL Server を構成しています...

ライセンス PID は正常に処理されました。新しいエディションは [Express Edition] です。
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
セットアップは正常に完了しました。SQL Server を起動しています。





ここで入力したパスワードがSQL Serverのsa(管理者権限ユーザー)のパスワードになります。
systemctlを実行すると、サービスが開始されているか確認できます。

$ systemctl status mssql-server
● mssql-server.service - Microsoft SQL Server Database Engine
     Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor >
     Active: active (running) since Thu 2021-04-08 11:41:03 UTC; 1min 18s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 2430 (sqlservr)
     Tasks: 127
     Memory: 590.8M
     CGroup: /system.slice/mssql-server.service
             ├─2430 /opt/mssql/bin/sqlservr
             └─2479 /opt/mssql/bin/sqlservr

4月 08 11:41:09 node sqlservr[2479]: [91B blob data]
4月 08 11:41:09 node sqlservr[2479]: [66B blob data]
4月 08 11:41:09 node sqlservr[2479]: [124B blob data]
4月 08 11:41:09 node sqlservr[2479]: [96B blob data]
4月 08 11:41:09 node sqlservr[2479]: [128B blob data]
4月 08 11:41:09 node sqlservr[2479]: [100B blob data]
4月 08 11:41:09 node sqlservr[2479]: [93B blob data]
4月 08 11:41:09 node sqlservr[2479]: [71B blob data]
4月 08 11:41:09 node sqlservr[2479]: [174B blob data]
4月 08 11:41:09 node sqlservr[2479]: [124B blob data]





sqlcmdのインストール



続いて、sqlcmd等のツールのインストールを行います。

ソースリストの追加

$ curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list



更新してツールのインストールを実行。

$ sudo apt-get update
$ sudo apt-get install mssql-tools unixodbc-dev



2回認証画面が表示されるので「はい」を選択。

a41_01.png

a41_02.png

最後に、「/opt/mssql-tools/bin/」へパスを通しておきます。

$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
$ source ~/.bashrc




これでsqlcmdが使えるようになりました。

$ sqlcmd -?
Microsoft (R) SQL Server Command Line Tool
Version 17.7.0001.1 Linux
Copyright (C) 2017 Microsoft Corporation. All rights reserved.

usage: sqlcmd            [-U login id]         [-P password]
[-S server or Dsn if -D is provided]
[-H hostname]         [-E trusted connection]
[-N Encrypt Connection][-C Trust Server Certificate]
[-d use database name] [-l login timeout]     [-t query timeout]
[-h headers]         [-s colseparator]     [-w screen width]
[-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
[-c cmdend]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces]
[-u unicode output]    [-r[0|1] msgs to stderr]
[-i inputfile]         [-o outputfile]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-K application intent]
[-M multisubnet failover]
[-b On error batch abort]
[-D Dsn flag, indicate -S is Dsn]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-g enable column encryption]
[-G use Azure Active Directory for authentication]
[-? show syntax summary]






データベース、テーブルの作成



sqlcmdでSQL Serverに接続し、データベースやテーブルを作成してみます。

$ sqlcmd -U sa -P [セットアップ時に設定したパスワード]



実行するとサーバーに接続し入力街の状態となります。

$ sqlcmd -U sa -P P@ssw0rd
1>



データベースを作成

1> CREATE DATABASE sample
2> go



データベース切り替え

1> use sample
2> go
データベース コンテキストが 'sample' に変更されました。



テーブル作成

1> create table test (id int, name nvarchar(50))
2> go



データ登録

1> insert into test(id, name) values (1, 'テストデータ')
2> go

(1 rows affected)



検索実行

1> select * from test
2> go
id         name                                            
----------- --------------------------------------------------
         1 テストデータ                                            

(1 rows affected)




ちゃんと動いてくれました。

Windows Server 2019のポートを開放する(SQL Server 2019 外部接続許可)

Windows Server 2019にSQL Server 2019をインストール。
管理ツールもインストールしてみました。
SQL Server 2019 CTPをExpressモードでWindows Server 2019へインストール
Windows Server 2019にSQL Server 2019 Management Tools(SSMS)をインストール

このデータベースに別の端末から接続できるよう構成してみます。


TCP/IP接続の有効化



SQL Server 2019 構成マネージャーで、TCP/IP接続を許可します。
スタートメニューから構成マネージャーを起動。

966_01.png

[SQL Server ネットワークの構成] - [MSSQLSERVER のプロトコル]を選択します。
初期状態でTCP/IPが無効になっているので、右クリックで表示されるメニューから「有効化」を選択します。

966_02.png

「サービスを再開したら有効になる」というメッセージが表示されます。

966_03.png

[SQL Serverのサービス] - [SQL Server(MSSQLSERVER)]を選択し、再起動のボタンをクリックします。

966_04.png

これでSQL ServerにTCP/IPで接続できるようになりました。




Windows Firewallで1433ポートを許可



SQL Serverは1433ポートで通信します。
Windows Firewallでこのポートでの通信を許可してやります。

サーバーマネージャーから「セキュリティが強化されたWindows Defender ファイアウォール」を起動

966_05.png


「受信の規則」へ「新しい規則」を追加します。

966_06.png

規則の追加手順は以下のとおり。
種類は「ポート」を選択。

966_07.png

TCP 1433ポートを許可。

966_08.png

966_09.png

966_10.png

ルールに適当な名前をつけて完了します。

966_11.png

1433ポートを許可するルールが追加されました。

966_12.png



接続確認



愛用している「HeidiSQL」でテストしました。
http://www.heidisql.com/

別の端末から接続してみます。

966_13.png

無事接続できました。

966_14.png


Windows Server 2019にSQL Server 2019 Management Tools(SSMS)をインストール

Windows Server 2019にSQL Server 2019 CTPをインストールしました。
SQL Server 2019 CTPをExpressモードでWindows Server 2019へインストール

続けて、SQL Server Management Studio (SSMS)をインストールしてみます。


インストーラーのダウンロード



こちらから「SSMS 18.0 (プレビュー 6)」をダウンロードしました。


965_01.png

「SSMS-Setup-JPN.exe」がダウンロードできました。



インストール



ダウンロードした「SSMS-Setup-JPN.exe」を実行し、インストーラーの指示通りインストール。

965_02.png

965_03.png

965_04.png

インストール完了です。



起動とデータベースへの接続



メニューに「SQL Server Management Studio」が追加されました。

965_05.png

SQL Serverインストール時、SQL Serverの管理者に現在のユーザーを追加しているので、
Windows認証でそのまま接続できます。

965_06.png

965_07.png


SQL Server 2019 CTPをExpressモードでWindows Server 2019へインストール

Windows Server 2019を仮想環境へインストールしてみました。
Windows Server 2019をUbuntu 18.04 + KVMにインストールする

この環境にSQL Server 2019 CTPをインストールしてみます。


インストーラーの取得と実行



SQL Server 2019 CTPのインストーラーはこちらからダウンロードしました。
https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2019-ctp

必要な情報を入力して「Continue」をクリック。

964_01.png

「SQL2019CTP2.2-SSEI-Eval.exe」がダウンロードできました。
SQL2019CTP2.2-SSEI-Eval.exeを実行します。

どんな操作が行えるのか見たかったので、真ん中の「カスタム」を選択しました。

964_02.png

ダウンロードする場所が選択できるようです。
右下の「インストール」をクリック。

964_03.png

インストールパッケージのダウンロードが始まります。
※ネットワークの状況によっては時間がかかると思います。

964_04.png

パッケージのダウンロードが終了するとSQL Server インストールセンターが起動します。
左側のメニューの「インストール」を選択。

964_05.png

一番上の「SQL Server の新規スタンドアロン インストールを実行するか、既存のインストールに機能を追加」を選択します。

964_06.png

インストーラーが起動します。
「無償のエディションを指定する」で「Express」を選択し次へ。

964_07.png

ライセンス条項の確認です。
「ライセンス条項と次に同意します。」にチェックをつけて次へ。

964_08.png

更新プログラムを含めるにチェックをつけて次へ。

964_09.png

ここでインストール可能かチェックが行われます。
Windows ファイアウォールに警告が表示されますが、次に進みます。

964_10.png


インストールするものは最小限の「データベースエンジンサービス」と「クライアントツール接続」
使うかどうかわかりませんが、面白そうなので「Python」を選択しました。

964_11.png

「規定のインスタンス」としてインストールすることにします。

964_12.png

サービスアカウントの指定はデフォルトのまま次へ。

964_13.png

認証モードは「混合モード」を選択しました。
ついでに、SQL Serverの管理者に現在のユーザーを追加しています。

964_14.png

インストールに「Python」を含めた場合、同意画面が表示されます。
「承諾」をクリック。

964_15.png

「次へ」がクリックできるようになります。

964_16.png

インストール内容の確認画面です。
「インストール」をクリックして処理を開始します。

964_17.png

インストール中...

964_18.png

インストール完了です。

964_19.png

これでSQL Server 2019 CTP(Express)のインストールは完了です。
続いて管理ツールの「Management Tools」をインストールしていきます。


UbuntuにインストールしたSQL Serverでデータベース、テーブルを作成(sqlcmd)

Ubuntu Server 16.04にSQL Serverをインストールしました。
Ubuntu Server 16.04 固定IPへの変更とSSH接続の有効化

sqlcmdを使用して、データベースとテーブルの作成を行ってみます。


sqlcmd



そういえば、sqlcmdでデータベースの作成を試したことがありました。
SQL Server 2008 R2 Express コマンドでデータベースとテーブルを作成する(sqlcmd)


sampleデータベース、postalテーブルを作成してみます。


・create.sql


USE master;
GO

CREATE DATABASE sample;
GO

USE sample;
GO

CREATE TABLE postal (
    code char(7) not null,
    address nchar(100) not null
);
GO




create.sqlというファイル名で保存しました。
sqlcmdでファイルに記載している内容を実行。


$ sqlcmd -U sa -P P@ssw0rd -i create.sql
Changed database context to 'master'.
Changed database context to 'sample'.




実行できたようです。


データの登録や検索を試してみます。
sqlcmdでデータベースに接続


$ sqlcmd -U sa -P P@ssw0rd




sampleデータベースに切り替え。


1> use sample;
2> go
Changed database context to 'sample'.




データ登録。


1> insert into postal (code,address) values ('1234567', 'テスト住所');
2> go

(1 rows affected)




登録したデータを検索。


1> select * from postal;
2> go
code    address                                                                                            
------- ----------------------------------------------------------------------------------------------------
1234567 テスト住所                                                                                            

(1 rows affected)




ちゃんと動いてくれています。
exitでsqlcmdを終了します。


1> exit
$




Management Studio上からも確認できました。

749_01.png


プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ