sqlcmdをUbuntuで実行できるようにする (SQL Server 2014とUbuntu16.04LTS)

ご存知のようにSQLServer2014 Developer Editionは今年(2016)3月から無料で使えるようになった。 例えばSQLServer2014のデーターベース構築・管理ガイド 著:長岡秀明 という本があるが、これを買えばスムーズに理解可能である。いままでのようにExpressと本の内容の互換性に悩む必要はなくなったのである。 (SQL Server 2016版もすでに有)
ちなみに来年(2017)にはLinux版のSQLServerも登場する予定である。

このようにSQL Serverの開発環境は年々向上している。そこで今回はUbuntuからSQL ServerにSQLを実効する環境をinstallしてみた。

Ubuntu16.04LTS上をクライアントとしてWindows10にインストールしたSQL Server 2014を試す。このPCにはSQL Server Express 2014もインストールされている。 Windows Domainは未使用である。

Ubuntu16.04LTSへのインストールは手順は以下のように行う。
基本は以下のページに書いてあるし、Downloadも行える。
Installing the Microsoft ODBC Driver for SQL Server on Linux
https://msdn.microsoft.com/en-us/library/hh568454(v=sql.110).aspx
上のページにもINSTALL方法が記載されているが
解凍した中にあるINSTALLの文書が一番詳しく正しかった。
細かな手順は以下のBlogが良かった。
Execute queries on a Microsoft SQL server from the Linux CLI with ODBC and Kerberos authentication
http://jensd.be/255/linux/execute-queries-on-a-microsoft-sql-server-from-the-linux-cli-with-odbc-and-kerberos-authentication
  1. 依存するlibraryをインストール
    1.   libc6
    2.   libkrb5-3
    3.   libgss3
    4.   e2fsprogs
    5.   openssl
    6. 上以外にも必要なものがあるか不明, 私は開発者なので元々入っているものも多い可能性有)
  2. sudo su
  3. ubuntuに入っているunixodbc(ディフォルト)をアンインストール(入れていれば)
    1. apt-get remove unixodbc*
  4. msodbcsql-13.0.0.0を解凍
    1. tar xvzf  msodbcsql-13.0.0.0.tar.gz
  5. 解答したフォルダに入る
  6. ./build_dmを実行
  7. ./install.sh verifyを実行(問題がないかを確認する、問題があればやり直し)
  8. ./install.sh installで終了
  9. rootから、一般ユーザーに戻ってsqlcmdを実行してみる

SQL Server 2014(Windows10にインストール, ドメイン・コントローラなしのため、SQL認証を利用)

Firewallsを2箇所許可 1433/TCP, 1434/UDPを開ける

日本語版:

管理ツール>「セキュリティが強化されたWindows ファイヤウォール」によるポート番号の受信規制作成

英語版:

Administrative Tools>Windows Firewall with Advanced Security>Inbound Rules




Sql Server Configuration ManagerでTCPを有効にする




私のWindows10にはSQL Server Express 2014とSQL Server 2014 Developer Editionが入っているのでinstanceが2個有りExpressがディフォルトである。

上の画像の下がDeveloper Edition(つまりDefaultではない)

DefaultのMSSQLSERVERはTCP/IPをDisableにして、Developer EditionのPortをすべて1433へ変更する。(上の図のTCP/IPを右クリック>プロパティ)




こうすることによってUbuntuからDeveloper Editionをディフォルトで開いてくれる



あとは、以下のコマンドをUbuntuのターミナルで実行すればよい。参考までにWindows7からの接続も記載しておく(HPI7WIN(192.168.100.50)はWindows10にSQLServer 2つインストールされたPC名, SQLSERVER2014はインストタンス名)

Ubuntu16.04LTS:
$ sqlcmd -U sa -P **** -S192.168.100.50
1>
$ sqlcmd -S192.168.100.50 -U sa
Password:
1>
$ sqlcmd -Stcp:192.168.100.50 -U sa
Password:
1>
$ sqlcmd -SHPI7WIN -U sa ダメ

Windows7 コマンドプロンプト
sqlcmd -S HPI7WIN\SQLSERVER2014 -U sa
Password:
1>
sqlcmd -S tcp:192.168.100.50\SQLSERVER2014 -U sa
Password:
1>

以上である、詳細はかなり飛ばしているので戸惑うこともあると思うが、Ubuntu16.04TLSでも動作すると理解していただくだけでも、役に立てればと思い書いた。

PS.1
Linux版sqlcmdの操作性は全くダメなので実験的に使うぐらいに考えておくこと。

PS.2
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLSERVER2014\MSSQL\Log\ERRORLOGにログが出力される。

コメント

このブログの人気の投稿

日本でコンピュータサイエンスを学ぶ難しさ

How to preview nif file on the ubuntu.