转自:http://blog.chinaunix.net/uid-10449864-id-2956897.html
因为项目需求,需要在linux下连接SQL2000,郁闷了一天才搞出来,下面写下安装过程。
LAMP配置环境采用的是nginx的环境,过程的安装就不啰嗦了,详细情况参看这篇blog:
http://blog.s135.com/post/366/
1、安装unixODBC软件包,如下:
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-kde-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
yum -y install unixODBC-*
2、从官网上下载PDO_ODBC扩展包
wget http://pecl.php.net/get/PDO_ODBC-1.0.1.tgz
tar -zxvf PDO_ODBC-1.0.1.tgz
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-odbc=unixODBC,/usr
make
该处报错:
/web/PDO_ODBC-1.0.1/pdo_odbc.c:34:1: 错误:未知的类型名‘function_entry’
function_entry pdo_odbc_functions[] = {
^
/web/PDO_ODBC-1.0.1/pdo_odbc.c:35:2: 警告:标量初始化带花括号
经查,是 function_entry的问题,修改 pdo_odbc.c中的代码,改为static const zend_function_entry(参考:http://blog.csdn.net/a600423444/article/details/7931257)
make install
在php.ini文件添加下面一行
extension = "pdo_odbc.so"
从 php.ini 检查 pdo_odbc 是否安装成功。
3、安装freetds
简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库!
tar -zxvf freetds-stable.tgz.tar
cd freetds-0.82/
./configure --prefix=/usr/local/webserver/freetds/ --with-tdsver=7.0 --with-unixODBC
make
make intall
如果你自己编译了libiconv软件包,估计要做个软连接
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
测试下是否连接成功:
/usr/local/webserver/freetds/bin/tsql -S ip地址 -U 用户名
locale is "en_US.UTF-8"
locale charset is "UTF-8"
出现以上字符就说明编译成功了。
下面就可以进行配置freetds,可以通过图形界面,也可以通过字符界面,这里通过字符界面来配置:
[root@localhost etc]# more /usr/local/webserver/freetds/etc/freetds.conf
添加以下内容:
[sql2000]
host = 192.168.100.100
port = 1433
tds version = 8.0 #必须使用8.0 ,才可以访问SQL Server 2000
client charset = GBK #客户端字符集,在使用isql 访问数据源时,如果检索的数据中中文为乱码,则需要添加并设置
[root@localhost etc]# more /usr/local/webserver/freetds/etc/locales.conf
添加以下内容:
[zh_CN]
language = Simplified Chinese
charset = GBK
根据数据库字符类型来定义连接字符,这里数据库是拉丁,所以采用了GBK。
[root@localhost etc]# more /etc/odbcinst.ini
添加以下内容:
[MySql2k]
Description = ODBC for MySql2k
Driver = /usr/local/webserver/freetds/lib/libtdsodbc.so
Driver64 = /usr/local/webserver/freetds/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
Setup64 = /usr/lib/libtdsS.so
UsageCount = 1
CPTimeout =
CPReuse =
[root@localhost etc]# more /etc/odbc.ini
添加以下内容:
[mssql]
Description = connect to sql2000
Driver = MySql2k
Servername = sql2000
Database = 连接数据库
UID = 连接用户名
PWD = 连接密码
Port = 1433
4、测试下连接情况
[root@localhost etc]# isq -v mssql(数据源) 用户名 密码
SQL>
出现以上信息就说明连接成功了。
参考文章
http://www.linuxdiyf.com/bbs/thread-76686-1-1.html
http://203.208.37.132/search?q=cache:aKc-dMO9j0IJ:dongbao.blog.sohu.com/rss+locales+freetds+chinese&cd=28&hl=zh-CN&ct=clnk&gl=cn&client=aff-cs-worldbrowser&st_usg=ALhdy286kKz3l17MAJcdB6siDxkNUP3YRA