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
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
ちなみに来年(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
- 依存するlibraryをインストール
- libc6
- libkrb5-3
- libgss3
- e2fsprogs
- openssl
- (上以外にも必要なものがあるか不明, 私は開発者なので元々入っているものも多い可能性有)
- sudo su
- ubuntuに入っているunixodbc(ディフォルト)をアンインストール(入れていれば)
- apt-get remove unixodbc*
- msodbcsql-13.0.0.0を解凍
- tar xvzf msodbcsql-13.0.0.0.tar.gz
- 解答したフォルダに入る
- ./build_dmを実行
- ./install.sh verifyを実行(問題がないかを確認する、問題があればやり直し)
- ./install.sh installで終了
- 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>
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:
Password:
1>
sqlcmd -S tcp:192.168.100.50\SQLSERVER2014 -U sa
Password:
Password:
1>
以上である、詳細はかなり飛ばしているので戸惑うこともあると思うが、Ubuntu16.04TLSでも動作すると理解していただくだけでも、役に立てればと思い書いた。
PS.1
Linux版sqlcmdの操作性は全くダメなので実験的に使うぐらいに考えておくこと。
PS.2
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLSERVER2014\MSSQL\Log\ERRORLOGにログが出力される。
コメント
コメントを投稿