Setup DB First JetEntityFrameworkProvider in VS2019
はじめに
Access で EntityFramework を使える JetEntityFrameworkProvider を試しました。
github.com
コードファーストは簡単に使えたのですが、DBファーストでは使えるまでに幾つかの設定が必要だったので忘れる前にまとめます。
- はじめに
- 準備① JetEntityFrameworkProvider
- 準備② レジストリのバックアップ
- 準備③ レジストリキー作成
- 1. Visual Studio を管理者として実行
- 2. install.cmd 編集
- 3. プロジェクトのコンパイル
- 3-1. JetDdexProvider ビルドイベント編集
- 3-3. JetEntityFrameworkProvider ビルドイベント編集
- 3-4. JetDdexProvider, JetEntityFrameworkProvider リビルド
- 3-5. VisualStudio2019 プライベートハイブ読み込み
- 3-6. レジストリ DataProviders, DataSources エクスポート
- 3-7. レジストリ DataProviders, DataSources 編集
- 3-8. レジストリ DataProviders, DataSources インポート
- 3-9. VisualStudio2019 プライベートハイブアンロード
- 4. machine.config に JetEntityFrameworkProvider 追加
- DB First 確認
- 参考資料
準備② レジストリのバックアップ
今回は VisualStudio のレジストリをエクスポートしました。
必要に応じて他のレジストリもエクスポートしておくと安心です。
regedit を実行。
VisualStudio を選択。
コンピューター\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio
エクスポートで保存。
準備③ レジストリキー作成
レジストリエディタからVisualStudioにキーを新規作成します。
コンピューター\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\
自由に名前を付けて良いのですが今回は OMGITWORKS で作成。
3. プロジェクトのコンパイル
コンパイルするためにビルドイベントの内容を編集します。
使用しているVisualStudioのバージョンによってパスが変わるため
環境に合わせてパスを変えて、コンパイルできるようにします。
3-1. JetDdexProvider ビルドイベント編集
JetDdexProvider のプロパティからビルドイベントを編集。
① ビルド前イベントのコマンドライン
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat" "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\gacutil.exe" /u JetEntityFrameworkProvider.dll
赤下線はVisualStudioのバージョンごとに変わるので確認して変更します。
② ビルド後イベントのコマンドライン
"$(ProjectDir)Install.cmd" /ranu /codebase "$(TargetDir)$(TargetFileName)" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat" "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\gacutil.exe" /i "$(TargetDir)JetEntityFrameworkProvider.dll" /f
赤下線はVisualStudioのバージョンごとに変わるので確認して変更します。
3-3. JetEntityFrameworkProvider ビルドイベント編集
JetEntityFrameworkProvider のプロパティからビルドイベントを編集。
① ビルド前イベントのコマンドライン
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\gacutil.exe" /u "$(TargetName)"
赤下線はVisualStudioのバージョンごとに変わるので確認して変更します。
② ビルド後イベントのコマンドライン
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\gacutil.exe" /if "$(TargetPath)"
赤下線はVisualStudioのバージョンごとに変わるのでパスを確認して変更します。
3-4. JetDdexProvider, JetEntityFrameworkProvider リビルド
JetDdexProvider
JetEntityFrameworkProvider
正常終了し、出力にエラーメッセージが無ければ成功です。
レジストリエディタからDataProviders, DataSourcesが作成されている事を確認します。
コンピューター\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\OMGITWORKS
3-5. VisualStudio2019 プライベートハイブ読み込み
レジストリでは、各種の情報がキー、サブキー、値と階層的に管理されている。
ハイブは、ハードウェア設定やソフトウェア設定、セキュリティ設定など、レジストリに保存される情報のうち、特定分野に関する一連の情報を識別するセクションを意味する。
Insider's Computer Dictionary:ハイブ とは? - @IT
プライベートハイブの編集方法については以下の記事が参考になりました。
Fortunately, you can use regedit.exe to load a private hive. You need to select the HKEY_USERS node, and click the File > Load Hive… menu. You select the privateregistry.bin file, give a name to the hive (I entered “VS2017PrivateRegistry”) and now you can see the 15.0
_Config key populated as usual (note: use File > Unload Hive when done):
VisualStudioのレジストリにJetEntityFrameworkProviderを登録するのですが、2017からプライベートハイブに変わってしまいコンパイルだけで登録出来ないため、手作業で行います。
まずはVisualStudioのレジストリ(プライベートハイブ)を確認。
~\AppData\Local\Microsoft\VisualStudio\
プライベートハイブのフォルダ名 16.0 はVisualStudioのバージョンです。
利用している開発環境のバージョンと一致するフォルダを探してください。
プライベートハイブを編集する前に起動しているVisualStudioを全て終了します。
起動していると以下の警告メッセージが表示されて編集ができません。
レジストリエディタにて HKEY_USER を選択。
レジストリエディタのハイブの読み込みから privateregistry.bin を指定。
キー名を付ける必要があるので分かりやすい名前を付けます。
これによりVisualStudioのプライベートハイブが編集できるようになります。
3-6. レジストリ DataProviders, DataSources エクスポート
DataProviders, DataSoures それぞれエクスポートします。
ドキュメントフォルダにregというフォルダを作成してエクスポートしました。
3-7. レジストリ DataProviders, DataSources 編集
エクスポートした DataProviders, DataSources を編集します。
間違えても良いように _new としてコピーしたものを編集します。
regファイルを右クリックして、今回はメモ帳で編集しました。
OMGITWORKSのパスを全て、プライベートハイブのパスに変更します。
・変更前
・変更後
3-8. レジストリ DataProviders, DataSources インポート
パスをプライベートハイブに変更した DataProviders, DataSources をレジストリエディタでインポートします。DataProviders, DataSourcesがある_Config が付くレジストリキーにインポートします。
DataProviders を選択します。
インポートから先ほど編集した DataProviders_new.reg を開きます。
完了するとDataProvidersにJetDDEXProviderが追加されます。
DataProviders と同様に DataSources もインポートします。
3-9. VisualStudio2019 プライベートハイブアンロード
読み込んでいたプライベートハイブを選択します。
アンロードを左クリック。
警告メッセージが表示されます。
はいボタンを押してレジストリキーのアンロードを実行します。
4. machine.config に JetEntityFrameworkProvider 追加
machine.config をデスクトップにコピーして編集をします。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
DbProviderFactories に JetEntityFrameworkProvider を追加します。
元の場所にmachine.configを上書きをします。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
DB First 確認
Accessでデータベースを作成します。
NuGet から JetEntityFrameworkProvider をインストールします。
ADO.NET Entity Data Model からDbContextの名称を入力して追加します。
データベースから Code First を選択して次へ。
新しい接続を左クリックします。
データソースを変更します。
<その他>からJet DDEX provider for JetEntityFrameworkProviderを選択します。
DataSource と Provider を入力します。
接続文字列が作成されます。
モデルを作成するテーブルを選択します。
Employee、SampleContext が作成できました。
GitHub の利用
目次
はじめに
UdemyのGit講座で覚えきれなかった内容を復習します。
knkomko.hatenablog.com
1.リモートリポジトリを追加
git remote add [リモート名]
GitHub上で新規作成したリモートリポジトリをbakの名称で登録する
リモートの情報を確認するとbakの名称でリポジトリの登録が確認できる
2. リモートリポジトリの情報を取得
git fetch [リモート名]
リモートリポジトリの更新された内容を取得する
リモートリポジトリから取得した情報がローカルリポジトリに保存される
remotes/ : リモートリポジトリから取得した情報が保存される場所
ワークツリーにローカルリポジトリの内容を反映する
5. ブランチの新規作成
git branch [ブランチ名]
既存のブランチを確認する
ブランチを新規作成する
作成したブランチを確認する
6. ブランチを切り替える
git checkout [既存ブランチ名]
masterからfutureブランチに切り替える
現在HEADが指し示すブランチを確認する
7. 変更履歴をマージする
git merge [ブランチ名]
①Fast Foward
現在のブランチより新しいブランチを参照する (親ブランチは1つ)
リモートリポジトリにてindex.htmlを変更した内容をワークツリーに取り込む
pull : fetch と merge を順番に実行する
リモートリポジトリにて変更した最新のブランチが参照されている
②Auto Merge
複数のブランチから新しいブランチを作成して参照する (親ブランチは2つ)
fuatureブランチにてindex.htmlを変更した内容をmasterに取り込む
fuatureブランチの変更がmasterブランチに取り込まれている
8. コンフリクトを解決する
複数のブランチが同じファイルの同じ行に変更を行うとコンフリクトが発生する
コンフリクトが発生したファイルを確認する
コンフリクトが発生している行を確認する
コンフリクトが発生した行を編集してファイルを保存する
コンフリクトを解消したファイルをコミットする
コンフリクトを解消したことをメッセージに記載する
コミットが成功していることを確認する
9. コンフリクトを防ぐ
・複数人で同じファイルを変更しない
・pullやmergeする前にcommitしておく
・pullするブランチに移動してからpullする
10. GitHub Flow を使用した開発手順
必ずプルリクエストによるレビューを行ってコードの品質を担保する
開発フローをシンプルにすることで開発に参加しやすくなる
masterがリリースしているコードとなる事で機能単位の切り戻しがしやすくなる
【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう:こっそり始めるGit/GitHub超入門(終) - @IT
講座の感想
まずはGitHub Flowを小規模な開発で導入したいと思いました。
コンフリクトの解消方法やコンフリクトを防ぐ運用ルールをチームで共有する為に今回の講座にあるGitの仕組みを理解して説明できる必要があるので、まずは個人で利用して、理解を深めていきたいと思います。
Git 基本コマンド
はじめに
2年前に購入していたUdemyのGit講座を始めました。
www.udemy.com
記事作成時点でプライベートリポジトリが無料で使えるといった変更もありますがGitの仕組みやコマンドの使い方は変わらないと思うので前向きに取り組みます。
jp.techcrunch.com
目次
1. ローカルリポジトリの新規作成
git init
実行すると空のローカルリポジトリが作成される
ローカルリポジトリには.git ディレクトリ(隠しフォルダ)が作成される
.git ディレクトリにローカルリポジトリのデータが保存されている
・objects … リポジトリの本体 (ツリーファイル、コミットファイル)
・config … Gitの設定ファイル (インデックスファイル)
3. ワークツリーの変更をステージに追加
git add .
index.html ファイルを作成して、その変更をステージに追加する
5. 変更状況を確認する
git status
ワークツリーにコミットすべき変更がない状況を確認する
index.html を変更してステージに追記すべき情報が有る状況を確認する
git add を実行して、コミットすべき情報が有る状況を確認する
git commit を実行して、コミットすべき変更がない状況を確認する
6. ワークツリーとステージ間の変更状況を確認する
git diff
index.html の変更した内容を確認する
ステージに追記後、ワークツリーとステージの間に差が無い事を確認する
8. ファイルの変更履歴を確認する
# 全ての変更履歴を表示 git log
#変更履歴の要点を一行で表示 git log --oneline
# ファイルの変更差分を表示 git log -p [ファイル名]
# 表示するコミット数を制限 git log -n [コミット数]
9. ファイルの削除を記録する
# ワークツリーとリポジトリのファイルを削除 git rm [ファイル名]
ファイルの削除を実行する
ステージにファイルの削除を実行した、という変更状況が記録されている
# ワークツリーにファイルは残してリポジトリのファイルを削除 git rm --cashed [ファイル名]
ファイルの削除を実行する
ステージに削除を実行したことが記録され、リポジトリにファイルが無いため
ワークツリーに残ったindex.htmlがリポジトリに存在しないと表示されている
Chages to committed : コミットされていないステージの変更
Untracked files : リポジトリに存在しないワークツリーのファイル
10. ファイルの移動を記録する
git mv [旧ファイル名] [新ファイル名]
ファイル名の変更を実行する
ステージにファイル名の変更を実行した、という変更状況が記録されている
講座の感想
Gitの仕組みとコマンドを図で説明してもらえるのでわかりやすかったです。
ワークツリー、ステージ、リポジトリの役割を理解する事が重要だと感じました。
IE11 jQueryで外部のテキストを読み込んで表示する方法
実行環境
・Windows Server 2016
・IE11
・IIS10
jQuery 1.12.4 ダウンロード
jQuery 1.12.4 and 2.2.4 Released | Official jQuery Blog
今回はjsファイルをダウンロードして使用しました。
読み込んだテキストを表示するHTML
publish.htm
<!doctype html> <html> <head> <meta charset="utf-8"> <title>sample</title> <script src="jquery-1.12.4.min.js" type="text/javascript"></script> <script> $(function() { $("#txt-text").load("sample.txt"); $("#html-text").load("sample.html"); }); </script> </head> <body> <div id="txt-text"></div> <div id="html-text"></div> </body> </html>
外部ファイル
sample.html
<a href="https://knkomko.hatenablog.com/">html</a>
sample.txt
<a href="https://knkomko.hatenablog.com/">txt</a>
表示の確認
Ubuntu 18.04 LXC SQL Server 定期的な完全バックアップを自動化する方法
はじめに
無料で利用できる SQL Server Express にはエージェントというジョブを定期的に実行するコンポーネントが無いため、別の方法で行う必要があります。
今回は UNIX系のOSにおいて定期的にジョブを実行する cron を使用してバックアップを作成します。
SQL Server のバックアップを作成する際に Transact SQL を使用するため、事前に
sqlcmd (SQL Server コマンドラインツール) のインストールが必要になります。
Ubuntu に SQL Server をインストールする場合はこちら。
knkomko.hatenablog.com
Ubuntu に sqlcmd をインストールする場合はこちら。
knkomko.hatenablog.com
実行環境
・Ubuntu 18.04 LXC
・SQL Server 2019
1. cron プロセスの開始
cron プロセスを開始します。
sudo service cron start
cron プロセスの状態を確認します。
sudo service cron status
プロセスが開始できていると running と表記されます。
2. SQLファイルの作成
例としてemployee データベースの完全バックアップを作成します。
今回は backup.sql としてSQLファイルを作成します。
vim /home/ubuntu/test/backup.sql
以下のクエリでデータベースからemployee.bakという名前でバックアップファイルを作成します。
BACKUP DATABASE [employee] TO DISK = N'/home/ubuntu/test/employee.bak' WITH NOFORMAT, NOINIT, NAME = N'employee-Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
3. SHファイルの作成
SQLファイルを実行するSHファイルを作成します。
今回は backup.sh として作成します。
vim /home/ubuntu/test/backup.sh
sqlcmd でSQL Serverに接続をした後に手順2で作成したSQLファイルを実行します。
cronでsqlcmdを実行するには絶対パスで指定する必要がありました。
/home/ubuntu/test/backup.sh
# Execute backup query. /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Pa$$w0rd -i /home/ubuntu/test/backup.sql # DB backup file name is "employee_YYYYMMdd_HHmmss.bak". mv /home/ubuntu/test/employee.bak /home/ubuntu/test/employee_`date "+%Y%m%d_%H%M%S"`.bak
sqlcmd の絶対パスの確認には which コマンドを使用しました。
which sqlcmd
以下の記事が参考になりました。
qiita.com
4. cron 設定ファイルの作成
ひな型となる cron 設定ファイルをコピーして作成します。
今回は crontestというファイル名にしました。
cron 設定ファイルに拡張子はありません。
sudo /etc/crontab /etc/cron.d/crontest
管理者権限で vim を起動して編集を行います。
sudo vim /etc/cron.d/crontest
初期は以下のような内容だと思います。
/etc/cron.d/crontest
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
今回は毎週、日曜日の午前0時にSHファイルを実行するようにします。
またSHファイルを実行した際の標準出力、標準エラー出力の内容をbackup.logとして作成しています。
00 00 * * MON root /home/ubuntu/test/backup.sh >> /home/ubuntu/test/backup.log 2>&1
定期実行の一文を追記した状態が以下の内容になります。
/etc/cron.d/crontest
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # 00 00 * * MON root /home/ubuntu/test/backup.sh >> /home/ubuntu/test/backup.log 2>&1
時刻や日付の設定は以下の記事が参考になりました。
nigimitama.hatenablog.jp
ここでは m h dom mon dow user command の書式に注意が必要です。
以下の書式に従わないと cron がエラーとなり実行されませんでした。
[m] \s [h] \t [dom] \s [dom] \s [mon] \s [dow] \t [user] \t [command]
制御文字 \s は半角空白、\t はタブを表しています。
Android LinearLayout ウィジェットを画面中央に配置する
はじめに
Google が「Android」を学べる無償コースを提供しているという記事を読んだので取り組んでみました。
japan.zdnet.com
以下のコースでウィジェットの位置を指定する箇所があるのですが、指定に対して位置がどのように変化しているのか分からなかったので調べてみました。
Android Kotlin の基礎 : 基本的なAndroidプロジェクトの構造
codelabs.developers.google.com
目標の配置
目標としてはTextViewとButtonを中央に縦並びで配置します。
初期の配置
width と height を指定したLinearLayoutを使用すると、左上にテキストとボタンが横並びとなっていました。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/roll_label" /> </LinearLayout>
1. ウィジェットを上下に並べる
LinearLayout の orientation を指定して子要素の並びを変更します。
orientation には vertical と horizon が指定できます。
orientationを指定しない場合の規定値は horizon となるため、初期の位置ではウィジェットが左右に配置されていたようです。
LinearLayout | Android Developers
orientation に vertical を指定してウィジェットを上下に並べます。
android:orientation="vertical"
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/roll_label" /> </LinearLayout>
2. ウィジェットを左右中央に配置する
TextViewとButtonのlayout_gravityは位置を指定する14種類の値がありました。
LinnerLayout の layout_gravity と同じようですが、TextView や Button の layout_gravity の値について説明するドキュメントは見つけることができませんでした。
layout_gravity に center_horizontal を指定して左右中央に配置します。
android:layout_gravity="center_horizontal"
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/roll_label" /> </LinearLayout>
3. ウィジェットを上下中央に配置する
LinearLayout の layout_gravity を使って子要素の位置を指定します。
layout_gravity には位置を指定する14種類の値があります。
規定値は Gravity.Top となっているようです。
LinearLayout.LayoutParams | Android Developers
layout_gravity に center_vertical を指定して上下中央に配置します。
android:layout_gravity="center_vertical"
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center_vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/roll_label" /> </LinearLayout>
Ubuntu 18.04 LXC に SQL Server をインストールする方法
はじめに
UbuntuにSQLServerをインストールする機会があったので、
公式ドキュメントのコマンドを実行する中で発生した問題を解決していきます。
docs.microsoft.com
SQL Server のコマンドラインツールは以下の記事を参考にしてください。
今回と同じ Ubuntu 18.04 LXC にインストールを行った内容になります。
knkomko.hatenablog.com
SQL Server について
SQL Server 2016 からLinuxに対応しています。
SQL Server on Linux のインストール ガイド - SQL Server | Microsoft Docs
メモリ2GBが必要とありますが、Expressエディションを選択した場合は
1インスタンスが1410MBまでしか使用できない制限があります。
Editions and supported features of SQL Server 2019 - SQL Server | Microsoft Docs
1. パブリック リポジトリの GPG キーをインポート
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
上記コマンドを実行するとwgetコマンドとgnupgが必要だとエラーになりました。
まずwgetコマンドをインストールすると権限が無いと拒否されたので
管理者権限で実行すると何事も無くインストールができました。
次はgnupgコマンドをインストールします。
こちらも管理者権限が必要になるので、管理者権限で実行をします。
目的のGPGキーのインポートするコマンドを実行すると無事成功しました。
2. Microsoft Ubuntu リポジトリを登録
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
上記コマンドを実行するとコマンドが無いとエラーになりました。
新たにパッケージをインストールする必要があるようです。
Ubuntu Linuxで、add-apt-repositoryしようとして「コマンドがない」って言われたら - CLOVER🍀
まずは software-properties-common のパッケージをインストールしてから
再びコマンドを実行すると、リポジトリの登録ができました。
3. 次のコマンドを実行して SQL Server をインストール
sudo apt-get update sudo apt-get install -y mssql-server
まずは apt-get update コマンドを実行します。
次に SQL Server のインストールコマンドを実行します。
4. パッケージのインストールが完了したら、mssql-conf setup を実行し、プロンプトに従って SA パスワードを設定し、エディションを選択
sudo /opt/mssql/bin/mssql-conf setup
コマンドを実行するとエディションの一覧が表示されました。
今回はExpressを使用するので 3 を入力してEnterを押します。
ライセンスに同意するので Yes を入力します。
最後に管理者アカウントのパスワードを設定します。
設定が終わるとSQL Serverが自動で起動しました。
5. 構成が完了したら、サービスが実行されていることを確認します。
systemctl status mssql-server --no-pager
コマンドを実行すると running と表記があり、起動している事を確認できました。
6. リモート接続を計画している場合は、必要に応じてファイアウォールで SQL Server の TCP ポート (既定値は 1433) も開きます。
TCPポート1433を開くとManagement Studioから接続を行う事ができました。