PHP+Mysqlばっかり使ってた人が
何故かAzure SQL Daatabase(Azure版SQL Server)を使わざるを得なくなって調べた産物
ODBCとか必要なのかと悩んでいましたが特に必要ないみたいです。
CentOS5をベースにしていますが、
これで絶対にLinuxから行けます!
freetdsのインストール
まずは「freetds」をいれます。
# yum install freetds freetds-devel
実はこれだけでSQL ServerやAzure SQL Databaseに繫げることが出来ます。
(tsqlというCLI用のmysqlコマンドみたいなやつでつなげます。)
# TDSVER=8.0 tsql -H 'データベースサーバIP' -p 1433 -U 'ユーザ名' -D 'データベース名'
Azure SQL Databaseの場合は[データベースサーバIP]を[hogehoge.database.windows.net]とします。
あと、Azure SQL Databaseにつなげる際は、Azure側で接続元IPを登録しないといけません。
Azure管理コンソールからSQL Database、データベースを選び、
ダッシュボードから使用できるipアドレスに
クライアントIPアドレスアドレスを登録しておきます
-Pを付けることでパスワード入力をスルーすることが出来ます
Azure SQL Databaseの場合は -Dを付けて接続時にデータベースを決めておかないといけません。
要するにSQL Serverのuseコマンドが使えないんです。
ってことは「[データベース名].[dbo].[テーブル名]」と記述する奴もAzure SQL Databaseでは使えません。。
実行例
Azure SQL Databaseにつないだ場合
# TDSVER=8.0 tsql -S 'hogehoge.database.windows.net' -p 1433 -U 'fugefuge' -P 'hagehage' -D 'bokeboke'
locale is "ja_JP.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Default database being set to bokeboke
1> select top 10 * from udauda;
2> go
設定ファイルについて
freetds.conf というファイルに設定を書いておくことも出来ます。
また、(後日書きますが)PHPからの接続の場合、
この設定ファイルが重要になったりします。
# vi /etc/freetds.conf
[dataserver]
host = データベースサーバIP
port = 1433
tds version = 8.0
charset = CP932
client charset = UTF-8
# TDSVER=8.0 tsql -S dataserver -U 'ユーザ名' -D 'データベース名'
もし、上手く行かなかった場合、
設定ファイルの場所がわかっていない可能性があるので
# export FREETDSCONF=/etc/freetds.conf
と事前に実行してあげてください。
(.bash_profileに入れとくといいですね)
以上です。
読み込んだプラグイン:security
インストール処理の設定をしています
パッケージ freetds は利用できません。
パッケージ freetds-devel は利用できません。
エラー: 何もしません
で、入れれれへんって方はリポジトリを確認してください
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -ivh epel-release-6-8.noarch.rpm