Linux仮想環境から、JDBCドライバを使用して、windows上のSQL Serverへ接続した過程と結果

今回はwindows上にLinux仮想環境を構築し、JDBCドライバをインストールしたのち、JDBCクライアントを使用しwindows上のSQL Serverへ接続した結果を表示します！

#目次
1.VMwareをダウンロード(windows環境)
2.SQLServerのダウンロード&インストール&簡単なデータベースとテーブル作成(windows環境)
3.SQLServerのリモート接続設定(windows環境)
4.CentOSのダウンロード&インストール(仮想環境)
5.JDKのインストール(仮想環境)
6.PROGRESS JDBCドライバの入手(仮想環境)
7.DBeaverEEのダウンロード&ドライバ設定(仮想環境)
8.DBeaverEEのJDBCURLの接続設定(仮想環境)
9.SQL文の実行(仮想環境)

#実行環境
Windows10 home 64bit
OSビルド: 18362.778
CentOS8(仮想環境)
JDK11(仮想環境)

##※注意点
windows上でのローカル環境とLinux仮想環境では見かけのハードは同じですが、全然違う実行環境なので、すでにローカル環境でJDKなどのソフトウェアをインストールされている方も改めてLinux環境上でダウンロード&インストールしなおす必要があります。

#手順
###1.VMwareをダウンロード(windows環境)
まずhttps://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/14_0 にアクセスし、VMware Workstation 14.1.8 Player for Windows 64-bit Operating Systems.の方をダウンロードし(図１)、拡張子exeを実行してインストールを済ませておいて下さい。

図１
![コメント 2020-05-30 142135.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/e8581a57-09a6-efb9-f2b6-b2d7184da2dd.jpeg)

###2.SQLServerのダウンロード&インストール&簡単なデータベースとテーブル作成(windows環境)
基本的には、https://www.tairax.com/entry/Microsoft-SQL-Server/Install にアクセスし、そこのやり方に従ってください。この手順が終われば、SQLServerのダウンロード&インストールまでが完了します。そして、データベースの作成方法はhttps://www.tairax.com/entry/Microsoft-SQL-Server/How-to-make-database にアクセスし、テーブルの作成方法はhttps://www.tairax.com/entry/Microsoft-SQL-Server/How-to-make-table を参考にしてみてください。

###3.SQLServerのSQL認証設定&リモート接続設定(windows環境)
現段階ではSQLServerへはwindows認証でしかログインできません。ところがリモート接続するにはSQL認証を設定する必要があります。まずはSQLServerへwindows認証のままログインします(図1.1)

図1.1
![コメント 2020-05-30 164614.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/18199d82-f19e-7b9e-25f9-a25fe01237ae.jpeg)

そして、SQLServer上での以降の設定はhttps://creativeweb.jp/fc/remote/ とhttps://creativeweb.jp/tips/firewall-sql-server/ を参考に設定します。ちなみに、前者の参照先のTCP/IPの有効化という項目で、固定ポートか動的ポートかを選べますが、固定ポートを選択してください。そして後者の参照先のファイアウォールの設定でリモートIPアドレスを設定しますが、それは仮想環境上の設定(図3に載っています)/ネットワークの有線の右にある歯車みたいなマークをクリックし、その中のIPv4アドレスとデフォルトのアドレスを二つとも入力しておきます(図1.2)。これでSQLserver側のリモート設定は完了しました。

図1.2
![コメント 2020-05-30 171607.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/858ce213-ef94-cadc-109c-c33ad5cf1c7e.jpeg)




###4.CentOSのダウンロード&インストール(仮想環境)
基本的には、https://qiita.com/anWest/items/c4bfd41f1dfbe90a0d5a の手順通りして頂いて、いくつか注意点だけ指摘しておきます。
まず、CentOSのISOを入手するURLですが、URLの中に「Packages」が入っているものを選択してください(図２)。なぜならISOファイルはダウンロードに時間がかかりますが、その他のISOファイルは破損している可能性が高いからです。

図２
![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_468508_40f554a0-415e-d42a-1ff7-ef4c073c3a5f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/c6edbdaf-adcd-5ab7-c7b4-017f82d7943a.png)

次に、CentOSを作成している間にいくつかrootパスワードとユーザーパスワードの設定をします(rootは管理者権限でJavaなど新たなソフトウェアをインストールする際に必要な権限で、実際に作業するときにはユーザー権限でログインします(CentOSを起動すると毎回ユーザーでログインしますが、自動ログインの設定は簡単にできるので「CentOS 自動ログイン」などでググってみましょう))。rootパスワードとユーザーパスワードは度々必要になるので、メモっておきましょう。

全ての設定が完了するとwindowsのようにGUIで操作ができるようになります(図３)(もしスリープモードになったらエンターキーを二回ぐらい押してください。再度ログイン画面が現れます)。

図３
![コメント 2020-05-30 145625.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/957296c3-7338-13eb-157e-52e84b155177.jpeg)

###5.JDKのインストール(仮想環境)
のちほどダウンロードするJDBCドライバの使用にはJavaの実行環境が必要です。そこでJDKをインストールします。
まずコマンドラインを開きます(左上のアクティビティをクリックしたあとサイドバーの下から二番目の黒い四角をクリックします)(図４)。

図４
![コメント 2020-05-30 151141.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/93139b7e-9ff0-ec7e-14ad-f12c6dc28fb3.jpeg)

コマンドラインが出てきたら、「sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel」と入力します(sudoは管理者権限で実行するためのコードです)。そこでユーザーパスワードを入力します。するとインストールが始まるのですが、もし途中で止まったらエンターキーかyを押して進めてください。インストールが完了すると図５のようにコマンド入力の待機状態になります。

図５
![コメント 2020-05-30 151735.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/1cfa0f22-1add-8d77-3457-7fa70795daa4.jpeg)

最後に「java -version」と入力してきちんとインストールされているか確認しましょう。きちんとインストールできていれば図5の画面上部のようにjavaのバージョン情報が表示されます。

###6.PROGRESS JDBCドライバの入手(仮想環境)
CentOS上のブラウザを使用して、https://www.ashisuto.co.jp/datadirect/app_download/ にアクセスし、DataDirect Connect for ODBC UNIX/Linux(64Bit)をダウンロードします(Linuxファイルをダウンロードするときに共通ですが「ファイルを保存する」の方を選択してください(図６))。

図６
![コメント 2020-05-30 155139.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/3ad3f793-a93d-540e-3a3d-4f7930b655fc.jpeg)

ドライバをダウンロードしたら、PROGRESS_DATADIRECT_JDBC_SQLSERVER_6.0.0.zipというファイルがホームかダウンロードというディレクトリにあると思います。それを右クリックして「ここで展開する」をクリックします。そして中身のファイルを新しいフォルダを作って移します。そして中身のファイルの中のPROGRESS_DATADIRECT_JDBC_INSTALL.jarをコマンドラインで実行します(コマンドラインを起動し、実行したいファイルがある階層へcdコマンドで移動し「java -jar PROGRESS_DATADIRECT_JDBC_INSTALL.jar -i console」と入力すればインストールされます(図７))
インストールが完了すると/home/okazakisoichiro/Progress/DataDirect/JDBC_60/libにsqlserver.jarが配置されているはずです。

図７
![コメント 2020-05-30 160558.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/0bcfae39-0d99-63b4-9b25-b627b7c77081.jpeg)

###7.DBeaverEEのダウンロード&ドライバ設定(仮想環境)
https://dbeaver.com/download/ にアクセスし、Linux RPM Package 64bit(Installer)をダウンロードします(図８)。

図８
![コメント 2020-05-30 193827.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/3560f5c5-cf5c-a3ce-784f-f84893708aea.jpeg)

そうすると、ホームかダウンロードディレクトリに先ほどダウンロードしたRPMパッケージがあるので、コマンドラインを起動してその階層までcdで移動します(図７を参考)をコマンドラインに「sudo rpm -ivh dbeaver-<version>.rpm」と入力します(varsionにはダウンロードしたRPMパッケージのバージョンを入力)。そうするとDBeaverがインストールされます。コマンドラインに「dbeaver」と入力して、DBeaverが立ち上がればインストールできています(図９)。

図９(こんな感じの画面が立ち上がれば成功です(図9はJDBC接続後の表示なので、実際にはもっと簡素な表示になります。))
![コメント 2020-05-30 195333.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/5efaff66-3c85-17a7-c457-0c740d446a1e.jpeg)


では、ドライバの設定をします。先ほど起動したDBeaberのメニューバーのデータベースを選択し、ドライバーマネジャーを起動します(詳細はhttps://qiita.com/zakiokasou/items/2e9297e268770351a300 の5.BigQueryコネクタをDbeaverに登録するに記載済み)。起動したら、ドライバ名、クラス名、ライブラリを埋めていきます。それぞれドライバ名には「JDBCドライバ」、クラス名には「com.ddtek.jdbc.sqlserver.SQLServerDriver」、そしてライブラリフォームの横にあるファイルを追加をクリックし、本記事６の手順で手に入れた、sqlserver.jarを指定します。そしてOKを押します(図１０)。


図１０
![コメント 2020-05-30 200037.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/459fab9d-e498-119e-b54d-7896d15c1168.jpeg)

###8.DBeaverEEの接続設定(仮想環境)
次に、Dbeaverのメニューバーのデータベース>新しい接続をクリックします。そこに先ほど命名したJDBCドライバが存在するのでそれを選択して次へを押します。すると図１１のような画面が現れます。

図１１
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/c11cd6c7-5781-b350-672d-78a1655c7a4c.png)


次に、JDBC URLに以下のURLを入力します。
"jdbc:sqlserver://<server>:<port>;databaseName=<databaseName>;user=<user>;password=<password>"
<>の中身を以下のように改変します。
server　→　SQL Serverにログインするときのサーバー名の￥に左側(図１２)

port　→　本記事手順3の参照先(https://creativeweb.jp/fc/remote/ )で設定した固定ポート番号(手順通りなら1433)

databaseName　→　本記事手順2の参照先(https://www.tairax.com/entry/Microsoft-SQL-Server/How-to-make-database )で設定したdatabase名(手順通りならsample)

user,password　→　SQL ServerにSQL認証でログインするときのログイン名、パスワード(図12参考)


図１２
![コメント 2020-05-30 201213.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/040ed8ae-8302-3ade-047c-1e318ee8e1aa.jpeg)

JDBCURLに入力が完了したら図１１左下のテスト接続を押します。うまくいけば接続済みというポップアップが出ます。右下のOKを押すと接続設定が完了します。

###9.SQL文の実行(仮想環境)
DBeaverの初期画面に左側にJDBCドライバという項目があるので、そちらを右クリックしてSQLエディタを選択します(図１３）

（図１３)
![コメント 2020-05-30 204338.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/b64a0fa9-e3f5-4911-9cbf-07f6477c5855.jpeg)

そうすると画面右側でSQLの操作ができるので、「SELECT *
    FROM [sample].[dbo].[human]」([]の中は本記事手順2の参照先でのデータベースとテーブルの設定によりますが手順通りなら[sample]と[human]になるはずです)と入力して画面中央の実行ボタン(三角が90度傾いた形)を入力しましょう。画面右下下部にSQLserverからデータが取得できました(図１４)(図のように表示するには事前にSQLServerでサンプルの値を入れておく必要があります)。

図１４
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624511/671c09eb-a4bf-3858-9133-8f8df1a77330.png)