freetds ODBC连接SQL Server问题
一、操作如下:
1、设置环境变量
export MySql2k=/usr/local
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}SYBASE/lib
export MySql2k LD_LIBRARY_PATH
2、vi /home/netcool/dev/mediation/freetds/freetds-0.64/freetds.conf
文件见附件freetds.conf
****************************修改部分****************************
# A typical Microsoft SQL Server 2000 configuration
[MySql2k]
host = 135.193.15.9
port = 1433
tds version = 8.0
****************************修改部分****************************
3、./configure --with-tdsver=8.0 --with-unixODBC
4、make;makeinstall
5、修改/etc/odbcinst.ini 和 /etc/odbc.ini
二、安装后主要文件
1、/usr/local 不能确定哪个是驱动库文件,故在/etc/odbcinst.ini 临时选libtdssrv.so
-rwxr-xr-x 1 root root 519476 10ÔÂ 10 10:51 libtds.so.5.0.0
lrwxrwxrwx 1 root root 15 10ÔÂ 10 10:51 libtds.so.5 -> libtds.so.5.0.0
lrwxrwxrwx 1 root root 15 10ÔÂ 10 10:51 libtds.so -> libtds.so.5.0.0
-rwxr-xr-x 1 root root 785 10ÔÂ 10 10:51 libtds.la
-rw-r--r-- 1 root root 766682 10ÔÂ 10 10:51 libtds.a
-rwxr-xr-x 1 root root 775181 10ÔÂ 10 10:51 libsybdb.so.5.0.0
lrwxrwxrwx 1 root root 17 10ÔÂ 10 10:51 libsybdb.so.5 -> libsybdb.so.5.0.0
lrwxrwxrwx 1 root root 17 10ÔÂ 10 10:51 libsybdb.so -> libsybdb.so.5.0.0
-rwxr-xr-x 1 root root 799 10ÔÂ 10 10:51 libsybdb.la
-rw-r--r-- 1 root root 1129336 10ÔÂ 10 10:51 libsybdb.a
-rwxr-xr-x 1 root root 690405 10ÔÂ 10 10:51 libct.so.4.0.0
lrwxrwxrwx 1 root root 14 10ÔÂ 10 10:51 libct.so.4 -> libct.so.4.0.0
lrwxrwxrwx 1 root root 14 10ÔÂ 10 10:51 libct.so -> libct.so.4.0.0
-rwxr-xr-x 1 root root 778 10ÔÂ 10 10:51 libct.la
-rw-r--r-- 1 root root 1023810 10ÔÂ 10 10:51 libct.a
-rwxr-xr-x 1 root root 560018 10ÔÂ 10 10:51 libtdssrv.so.2.0.0
lrwxrwxrwx 1 root root 18 10ÔÂ 10 10:51 libtdssrv.so.2 -> libtdssrv.so.2.0.0
lrwxrwxrwx 1 root root 18 10ÔÂ 10 10:51 libtdssrv.so -> libtdssrv.so.2.0.0
-rwxr-xr-x 1 root root 806 10ÔÂ 10 10:51 libtdssrv.la
-rw-r--r-- 1 root root 835084 10ÔÂ 10 10:51 libtdssrv.a
2、/etc/odbcinst.ini 和 /etc/odbc.ini
more /etc/odbcinst.ini
# Example driver definitinions
#
#
# Included in the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 1
# Driver from the MyODBC package
# Setup from the unixODBC package
#[MySQL]
#Description = ODBC for MySQL
#Driver = /usr/lib/libmyodbc.so
#Setup = /usr/lib/libodbcmyS.so
#FileUsage = 1
#Driver from the Freetds.org
[MySql2k]
Description = v0.64 with Protocol v8.0
Driver = /usr/local/lib/libtdssrv.so
Driver64 = /usr/local/lib/libtdssrv.so
#Setup = /usr/lib/libtdsS.so
#Setup64 = /usr/lib/libtdsS.so
UsageCount = 1
CPTimeout =
CPReuse =
=======================================================
more /etc/odbc.ini
[mssql]
Description = MySql2k
Driver = MySql2k
Servername = MySql2k
Database = NTBW
UID = NTBW
PWD = NTBW
Port = 1433
三、测试
1、tsql -H 135.193.15.9 -p 1433 -U NTBW -P NTBW
locale is "zh_CN"
locale charset is "GB2312"
1> select count(*) from Commands;
2> go;
3> select count(*) from dbo.Commands
4> go
Msg 170, Level 15, State 1, Server NTBW, Line 2
Line 2: Incorrect syntax near 'go'.
1> select count(*) from Commands
2> go
364
1>
通过tsql测试可以连接到对方数据库,并且可以查询数据。
问题是之前的程序不能连接数据库,要说明的是程序没有修改过。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决,该关闭了。