😇

MacBookでのC#環境構築 ~SQL Serverの構築と接続方法~

2023/03/14に公開

はじめに

自身の勉強用にMacBookでSQL Serverを利用してC# ASP .NETの環境を立ち上げました。
その際SQL Serverの構築が面倒だったのと、忘れてしまいそうなので、備忘録としてこちらにまとめます。

C#の学習ならWindowsの方がいい

結論から言うと、C#を学習する場合Windows OSで行った方がいいです。
環境構築もMacBookと比べて簡単ですし、Visual StudioがWindowsに最適化されていると思います。

でも俺はMacBookしか持ってないから!!
でも俺はMac OSでやりたいんだよ!!そっちの方がカッコいいだろ!!

という人の為に?なるかもしれない記事です。

前提条件

前提としてVisual Studio for MacDockerがMacBookに入っていることが前提です。
入っていない場合は自分で調べて入れてみてください。

Visual Studioのダウンロード

最初にVisual Studio for Macをダウンロードしている前提で話を進めますが、まだダウンロードしていない人はMicrosoftの公式ページからダウンロードしてください。

開発に必要なパッケージを選択して、出てきた通りに進めていけば大丈夫です。
全部インストールしておくと後で楽かもしれませんが、
容量などを気にする人はWeb周りの開発が行いたいのであれば、.NET Coreのターゲットフレームワークさえいれておけば基本は大丈夫かなと思います。

SQL Serverの構築

これが今回のメインディッシュです。
SQL ServerをMacBookで利用したい場合は、Dockerを利用して環境を作っていくのが一番良さそうです。

基本的な方法はMicrosoftの公式ドキュメントページに沿ってやっていきます。

Dockerを入れる

前提条件としてDockerが使えることを上記で挙げましたが
MacBookに入っていない人は入れてください。

入っているかどうかは

docker -v

などでバージョン確認できます。

Microsoftのコンテナレジストリからコンテナイメージを取ってくる

好きなバージョンのコンテナイメージをPullしてくれば良いのですが、今回は上記のMicrosoftの記事に沿ってそのままコマンドを実行しました。

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

Imageを利用してコンテナを立ち上げる

Pullしてきたコンテナイメージを利用してコンテナを立ち上げます。

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=任意のパスワード" \
   -p 任意のポート番号:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2017-latest

今回、私は下記のようにしました。

sudo docker run \
  -e "ACCEPT_EULA=Y"  \
  -e "MSSQL_SA_PASSWORD=パスワード"   \
  -p 1401:1433 \
  --name sql-test2 --hostname sql-test2 \
  -d mcr.microsoft.com/mssql/server:2017-latest

ポート番号はこの書き方で、コンテナ側の1433ポートがホスト側の1401ポートにマッピングされているはずです。

コマンドが正常に通れば、Dockerのデスクトップアプリにもコンテナが作成されていることが確認できます。

こんな感じです。

Azure Data Studioを入れてDBの中を見てみる

DBの中を見る方法は様々ありますが、私の場合はAzure Data StudioをMacBookに入れて中身を確認しました。

Azure Data Studio のダウンロードとインストール

私のMacBookは英語OSなので全て英語ですが、下記のような設定でDBに接続できました。

サーバー、ユーザー名、パスワードあたりを入れれば問題無く入れるかと思います。
ローカル勉強用環境ですが、念の為?パスワードはマスクしておきます。
SAユーザーは、本番環境などでは利用しないのがセキュリティ上良いとは思いますが今回は勉強用の環境構築なのでとりあえずこれで繋がります。

C#で作ったアプリからSQL Serverに接続する

少しC#の勉強を進めていくと、アプリを作ってSQL Serverに接続する必要が出てくると思います。
その際の接続文字列は以下のように書くと接続できます。

private static string _connStr = @"
  Server=127.0.0.1,1401;
  Database=任意のDB名;
  User Id=SA;
  Password=設定したパスワード;
  TrustServerCertificate=True";

または

<connectionStrings>
    <add name="sqlConnectionTest"
         connectionString="Server=127.0.0.1,1401; Database=任意のDB名; User Id=SA; Password=設定したパスワード; TrustServerCertificate=True"/>
  </connectionStrings>

終わりに

初心者が最初に挫折しやすいのが、環境構築かと思いますが、C#をMacBookで勉強したい人の助けにこの備忘録がなればと思います。

有識者の方、間違い等あればご指摘頂けると助かります。(優しくしてください。)

参考にした記事

Discussion