LoginSignup
1
1

More than 5 years have passed since last update.

LinuxからSQL Serverを見に行く

Last updated at Posted at 2016-10-26

せっかくUbuntu 16.04 LTSを導入したので、
FreeTDS関連を新たに試してみる。

環境

クライアント

  • Ubuntu 16.04 LTS
  • 64bitマシン
接続イメージ
php7.0-sybase <-> FreeTDS <-> SQL Server

設定

Apache_MySQL_PHPをまとめてインストール
$ sudo tasksel install lamp-server

なんとPHP 7.0がインストールされます。
Ubuntu、結構攻めてますね。

php7.0-sybaseを探す
$ apt search php7.0-sybase
php7.0-sybaseをインストール
$ sudo apt install php7.0-sybase
freetdsを探す
$ apt search freetds
freetds関係をインストール
$ sudo apt install freetds-common freetds-bin

今回は意図的にcharset=CP932を抜いている。
SQL Server2000以降のcharsetはUCS2固定なので不要とのこと。
Localization - FreeTDS Users Guide

freetds.conf
[RDBSERVER]                # hostname になる
   host = 192.168.0.3      # 接続するDBのIPアドレスを入れる
   port = 1433             # SQL Server2000以降、標準のportは1433
   tds version  =  7.3     # SQL Server2005は7.2  2008は7.3 2012は7.4
   client charset = UTF-8  # Client(Linux)側の文字コードセット

tsql実験

SQL Server 2008R2

  • Windows Server 2008
  • 日本語データベース名のデータベース
  • 接続は可能
  • データを呼び出すことができない。
データベース接続の様子
1> use 日本語システム
2> go
Msg 911 (severity 16, state 1) from DBSERVER Line 1:
     "Database '日本語シスチE▒▒' does not exist. Make sure that the name is entered correctly."

テという文字に問題があるのかもしれない。
文字化けして相手に伝わるので接続ができない。

SQL Server 2000

  • Windows 2000 Server
  • DB名はalpabet
  • テーブル名やカラム名は日本語
  • 繋がりました。
  • 3万件以上のデータ表示の問題なし
  • 60万件以上のデータはないので試せず。

以前3万件でSegment faultを起こしていたので、freetds.confの
charset=CP932を抜くことで日本語をまともに扱う効果があるのかもしれない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1