まず何がしたいのか?
AwsのVPCで起動しているEC2からVPN接続されているデータセンター側MS-SQLサーバーのデータを参照したい。
構成
AWS-VPC DataCenter
[EC2]——(VPN)——[MS-SQL]
AmazonLinuxにUnixODBCとfreetdsをソースからコンパイルしてインストールして設定ファイルを変更してみたけど接続できませんでした。なぜだ? このような状態だとすべてがうまくいかないので気持ちを整理する意味でインスタンスをCentOSに切り替えてUnixODBC freetdsをインストールしてみる。
すると tsql -S servername -U username -P password
1>select @@version
2>go
Microsoft SQL Server 2008 (SP3) – 10.0.5500.0 (X64)
XXX XX 20XX XX:XX:XX
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
ほぉーー接続できたよ。 とても簡単に 方式は間違っていないみたいね
で、AmazonLinuxのUnixODBCとfreetdsがうまくいかないのはなぜか?しばらく考えたのですがわかりませんでした。しかし、簡単な方法で解決しました。それはyumによるインストールです。そうです AmazonLinuxだからunixODBCないのではと思い込みyumでインストールを試しておりませんでした。
yumでインストール後 /etc/odbc.iniに接続先MS-SQLの情報を記述して接続すると簡単に接続できました。
下記は、Googleで検索し参考にさせていただいたサイトです
CentOSにRailsを入れてODBC経由でSQLServerに繋げるまで その1
CentOSにRailsを入れてODBC経由でSQLServerに繋げるまで その2
インストールログ Infinite Loop -SE奮闘記-
システム運用日記 : LinuxからSQL Serverに接続する
http://freetds.schemamania.org/userguide/choosingtdsprotocol.htm
CakePHPからSQLServer(MSSQL)サーバにアクセスをするにはFreeTDSを使ったODBC経由でのアクセスになるようだ | Ultraひみちゅぶろぐ
linux – Can’t Install FreeTDS via Yum Package Manager – Stack Overflow