今回は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.の方をダウンロードし(図1)、拡張子exeを実行してインストールを済ませておいて下さい。
###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)
そして、SQLServer上での以降の設定はhttps://creativeweb.jp/fc/remote/ とhttps://creativeweb.jp/tips/firewall-sql-server/ を参考に設定します。ちなみに、前者の参照先のTCP/IPの有効化という項目で、固定ポートか動的ポートかを選べますが、固定ポートを選択してください。そして後者の参照先のファイアウォールの設定でリモートIPアドレスを設定しますが、それは仮想環境上の設定(図3に載っています)/ネットワークの有線の右にある歯車みたいなマークをクリックし、その中のIPv4アドレスとデフォルトのアドレスを二つとも入力しておきます(図1.2)。これでSQLserver側のリモート設定は完了しました。
###4.CentOSのダウンロード&インストール(仮想環境)
基本的には、https://qiita.com/anWest/items/c4bfd41f1dfbe90a0d5a の手順通りして頂いて、いくつか注意点だけ指摘しておきます。
まず、CentOSのISOを入手するURLですが、URLの中に「Packages」が入っているものを選択してください(図2)。なぜならISOファイルはダウンロードに時間がかかりますが、その他のISOファイルは破損している可能性が高いからです。
次に、CentOSを作成している間にいくつかrootパスワードとユーザーパスワードの設定をします(rootは管理者権限でJavaなど新たなソフトウェアをインストールする際に必要な権限で、実際に作業するときにはユーザー権限でログインします(CentOSを起動すると毎回ユーザーでログインしますが、自動ログインの設定は簡単にできるので「CentOS 自動ログイン」などでググってみましょう))。rootパスワードとユーザーパスワードは度々必要になるので、メモっておきましょう。
全ての設定が完了するとwindowsのようにGUIで操作ができるようになります(図3)(もしスリープモードになったらエンターキーを二回ぐらい押してください。再度ログイン画面が現れます)。
###5.JDKのインストール(仮想環境)
のちほどダウンロードするJDBCドライバの使用にはJavaの実行環境が必要です。そこでJDKをインストールします。
まずコマンドラインを開きます(左上のアクティビティをクリックしたあとサイドバーの下から二番目の黒い四角をクリックします)(図4)。
コマンドラインが出てきたら、「sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel」と入力します(sudoは管理者権限で実行するためのコードです)。そこでユーザーパスワードを入力します。するとインストールが始まるのですが、もし途中で止まったらエンターキーかyを押して進めてください。インストールが完了すると図5のようにコマンド入力の待機状態になります。
最後に「java -version」と入力してきちんとインストールされているか確認しましょう。きちんとインストールできていれば図5の画面上部のようにjavaのバージョン情報が表示されます。
###6.PROGRESS JDBCドライバの入手(仮想環境)
CentOS上のブラウザを使用して、https://www.ashisuto.co.jp/datadirect/app_download/ にアクセスし、DataDirect Connect for ODBC UNIX/Linux(64Bit)をダウンロードします(Linuxファイルをダウンロードするときに共通ですが「ファイルを保存する」の方を選択してください(図6))。
ドライバをダウンロードしたら、PROGRESS_DATADIRECT_JDBC_SQLSERVER_6.0.0.zipというファイルがホームかダウンロードというディレクトリにあると思います。それを右クリックして「ここで展開する」をクリックします。そして中身のファイルを新しいフォルダを作って移します。そして中身のファイルの中のPROGRESS_DATADIRECT_JDBC_INSTALL.jarをコマンドラインで実行します(コマンドラインを起動し、実行したいファイルがある階層へcdコマンドで移動し「java -jar PROGRESS_DATADIRECT_JDBC_INSTALL.jar -i console」と入力すればインストールされます(図7))
インストールが完了すると/home/okazakisoichiro/Progress/DataDirect/JDBC_60/libにsqlserver.jarが配置されているはずです。
###7.DBeaverEEのダウンロード&ドライバ設定(仮想環境)
https://dbeaver.com/download/ にアクセスし、Linux RPM Package 64bit(Installer)をダウンロードします(図8)。
そうすると、ホームかダウンロードディレクトリに先ほどダウンロードしたRPMパッケージがあるので、コマンドラインを起動してその階層までcdで移動します(図7を参考)をコマンドラインに「sudo rpm -ivh dbeaver-.rpm」と入力します(varsionにはダウンロードしたRPMパッケージのバージョンを入力)。そうするとDBeaverがインストールされます。コマンドラインに「dbeaver」と入力して、DBeaverが立ち上がればインストールできています(図9)。
図9(こんな感じの画面が立ち上がれば成功です(図9はJDBC接続後の表示なので、実際にはもっと簡素な表示になります。))
では、ドライバの設定をします。先ほど起動したDBeaberのメニューバーのデータベースを選択し、ドライバーマネジャーを起動します(詳細はhttps://qiita.com/zakiokasou/items/2e9297e268770351a300 の5.BigQueryコネクタをDbeaverに登録するに記載済み)。起動したら、ドライバ名、クラス名、ライブラリを埋めていきます。それぞれドライバ名には「JDBCドライバ」、クラス名には「com.ddtek.jdbc.sqlserver.SQLServerDriver」、そしてライブラリフォームの横にあるファイルを追加をクリックし、本記事6の手順で手に入れた、sqlserver.jarを指定します。そしてOKを押します(図10)。
###8.DBeaverEEの接続設定(仮想環境)
次に、Dbeaverのメニューバーのデータベース>新しい接続をクリックします。そこに先ほど命名したJDBCドライバが存在するのでそれを選択して次へを押します。すると図11のような画面が現れます。
次に、JDBC URLに以下のURLを入力します。
"jdbc:sqlserver://:;databaseName=;user=;password="
<>の中身を以下のように改変します。
server → SQL Serverにログインするときのサーバー名の¥に左側(図12)
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参考)
JDBCURLに入力が完了したら図11左下のテスト接続を押します。うまくいけば接続済みというポップアップが出ます。右下のOKを押すと接続設定が完了します。
###9.SQL文の実行(仮想環境)
DBeaverの初期画面に左側にJDBCドライバという項目があるので、そちらを右クリックしてSQLエディタを選択します(図13)
そうすると画面右側でSQLの操作ができるので、「SELECT *
FROM [sample].[dbo].[human]」([]の中は本記事手順2の参照先でのデータベースとテーブルの設定によりますが手順通りなら[sample]と[human]になるはずです)と入力して画面中央の実行ボタン(三角が90度傾いた形)を入力しましょう。画面右下下部にSQLserverからデータが取得できました(図14)(図のように表示するには事前にSQLServerでサンプルの値を入れておく必要があります)。