SQLServer本体や、GUIツールのSQL Server Management StudioはWindowsでしか使えない
MacでSQLServerを利用するためのメモ
Dockerイメージの取得
Docker pullでDocker HubよりDockerイメージを取得する
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
SQLServerの各versionはコロンの後に指定する
指定できるversionは下記を参照
Dockerコンテナ作成
docker runでコンテナを作成する
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest
docker psでDockerコンテナを表示する
正常にDockerコンテナが作成されるとSTATUSがUpとなる
normal
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
002b5cc5a9db mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm…" 15 seconds ago Up 14 seconds 0.0.0.0:1433->1433/tcp sql1
エラーが出た場合、STATUSがExitedとなる
下記はパスワード強度がSQLServerの基準を満たしておらず、エラーとなった事例
error
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9da266bced0 mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm…" 12 minutes ago Exited (255) 12 minutes ago sql1
エラーログの確認
docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Error response from daemon: Container f9da266bced092c0c6ecaa7df2dac5ee638ad5b0229e8acfd0b237f7dc70dc5f is not running
SQLServerに接続する
稼働しているコンテナ名を指定して接続する
sudo docker exec -it sql1 "bash"
mssql@sql1:/$
コンテナに入れたらフルパスとパスワードを指定
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
SQLServerへの接続が成功した場合、1>が表示される
Azure Data Studio
Azure Data Stduioは、OSを問わず利用できるGUIツール
MacからGUIで操作する場合におすすめ
Reference