SQL Server をmacOS, Docker上にインストールして実行
前段
Azure SQLの全体像把握 にて整理したが, Azure SQLはSQL Serverをクラウドした前提.
そしてAzure SQLは世の中一般的なソリューションである.
クラウドはサーバー自体を論理化, 仮想化することで, 自動化, 管理工数を減らして便利にした.
一方で本質的なコア技術や基礎領域への理解が浅いままだと, 応用展開を行うことは難しい.
on premiseでSQL Serverを動かすことで理解を深めていく.
環境説明
構築元OS: macOS Catalina10.15.7
Docker version: 20.10.2
SQL Server: 2019-CU9-ubuntu-16.04
GUI tool: Azure Data Studio 1.25.3
Document
Linux 上の SQL Server
日本語 https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-overview?view=sql-server-ver15
英語 https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview?view=sql-server-ver15
クイック スタート:Docker を使用して SQL Server コンテナー イメージを実行する
日本語 https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-overview?view=sql-server-ver15
英語 https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash
その他参考ブログ
Dockerを使用してMacからSQL Serverに接続する(方法編) https://qiita.com/m_rn/items/5c1c5523146d964ff9e4
手順
前提チェック
SQL Server on Linux のシステム要件の確認
https://gyazo.com/ed16e5338b1cf14a766c182d2d40c50b
Dockerのインストール
https://docs.docker.com/engine/install/
作業1. Docker image PULL & RUN
SQL Server on UbuntuのイメージをPULL
sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
SQL Server をRUN
code:dockerRun
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=PasswordXXXX" \
-p 1433:1433 --name sqlsvver1 -h sqlsvver1 \
-d mcr.microsoft.com/mssql/server:2019-latest
詳細は右記より https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash#pull-and-run-the-2019-container-image
Containerの状況確認
docker ps -a
code:cmd_result
~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa6104cc99b4 mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 7 seconds ago Up 6 seconds 0.0.0.0:1433->1433/tcp sqlsvver1
SAアカウントのPassword変更
SAアカウントとは, SQL Server インスタンスのシステム管理者. 今回はやらない.
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash#change-the-sa-password
作業2. Dockerで立ち上げたコンテナサーバーに接続してみる
SQL Serverへの接続
実行中のコンテナー内で対話型の Bash シェルを開始
sudo docker exec -it sqlsvver1 "bash"
code:result
SQL Server内のbashへ入れた
mssql@sqlsvver1:/$
Container内のsqlcmdへ
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "PasswordXXXX"
sqlcmd と Transact-SQLを使用し, Databaseへの操作(sql server内)
新しいデータベース作成, データ挿入, データ選択, コマンドプロンプトの終了まで
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash#create-and-query-data
Container外から接続
Client にsqlcmdをインストールしてcontainerへ接続する. 今回はやらない.
macへのインストールが手間なのと, 作業内容自体はcontainerで対応済みなので.
sqlcmd以外のコマンドラインツールは下記
https://docs.microsoft.com/ja-jp/sql/tools/overview-sql-tools?view=sql-server-ver15#command-line-tools
作業3. Azure Data StudioからSQL Serverへ接続してみる
Azure Data Studioとは?
開発者環境(OS)に依存せずDatabase(SQL) Server への接続, 操作を可能にするツール. カバー範囲が多くDatabase版のIDEっていう印象 https://docs.microsoft.com/ja-jp/sql/azure-data-studio/what-is-azure-data-studio?view=sql-server-ver15
Document
Dockerを使用してMacからSQL Serverに接続する(方法編) https://qiita.com/m_rn/items/5c1c5523146d964ff9e4
他GUIツール
https://docs.microsoft.com/ja-jp/sql/tools/overview-sql-tools?view=sql-server-ver15#recommended-tools
https://gyazo.com/08384ab788be17c7e0de8678ad9e7777
実作業
mac os用のAzure Data Studioを取得インストール https://docs.microsoft.com/ja-jp/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver15
SQL Server に対する接続およびクエリ https://docs.microsoft.com/ja-jp/sql/azure-data-studio/quickstart-sql-server?view=sql-server-ver15
Azure Data Studio on macOSからSQL Server on unbutu in Docker on macOSへの接続を確認
https://gyazo.com/972bf2130ce7f7d95abd9c947a37d91b
作業4. 起動中のdocker containerを停止/再起動する
code: commnad
1. processを確認
docker ps -a
2. 停止
docker stop container_id
3. 再起動
docker restart container_id
memo
Transact-SQLをインプットしておきたい.
雑記
SQL Server on unbutu in Docker on macOS構築を行い, Database, table, data insertを実施した.
これまでの経験ではPostgresqlのみを使ってきたが, 大きく変わる部分はなかったかなっていう印象. SQL Serverへの接続方法は, 準備されているtoolレベルでもあるし, 実際にCLIからも実施ができた.
#Azure #Database