这两天一直在搞freetds和unixodbc,因为要在我的OSX上使用php连接sqlserver2005数据库~~
select @@version
Microsoft SQL Server 2005 - 9.00.4035.00 (X64)
Nov 24 2008 16:17:31
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
碰到了很多问题,用了两三天的时间,才解决掉了所有问题,一开始一点思路都么有,现在都搞定了,让我们整理下我们的思路
首先我们有freetds,我们要在freetds中配置我们的数据源:
# A typical Microsoft server
[TEST1dsn]
host = some sql server host like 192.168.100.9
port = 1433
tds version = 7.0
有了数据源,我们就可以用tsql来这么干了~~
tsql -S TEST1dsn -U root -P root -D dbtest
AndyMacBookPro:etc andy$ tsql -S TEST1dsn -U root -P root
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>
数据源配置成功!
有了数据源之后,我们就可以去配置unixodbc里的odbcinst.ini,这里面主要是指明odbc的驱动程序的,例如我这里是:
[FreeTDS]
Description=freetds driver
Driver=/usr/local/lib/libtdsodbc.so
我们为我们的渠道指出了名字,是FreeTDS,这样我们数据源:TEST1dsn和驱动:FreeTDS,就都有了,下一步就真正开始配置我们可访问的unixodbc了:
在odbc.ini中我们配置:
[andy1]
Driver=FreeTDS #驱动名
Description=MSSQL Server
Servername=TEST1dsn #数据源
Database=dbtest
这里我们指定了驱动是FreeTDS,数据源是 TEST1dsn,这两者之前我们都配置过了,然后我们就可以使用isql -v andy1 root root来访问我们配置好的odbc访问了~~~
AndyMacBookPro:etc andy$ isql -v andy1 root root
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>