为了模拟客户的一个环境,必须自己在公司内网搭建一下,让我郁闷的是linux主站去连接sql server 数据库,从里面读取数据。这个是第一次配置,以前都是使用mysql的。
freetds是linux连接sql 的一个第三方开源软件,提供库函数。
背景:通过apache调用一个php脚本去sql数据库获得数据。
操作系统:redhat 5.x
数据库 :sql server 2005
其他软件:freetds,apache,php
1、apache安装(yum安装即可)
yum install httpd httpd-devel
2、freetds 安装
tar xzvf freetds-stable.tgz
cd freetds-0.91
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make
make instal
说明:注意--with-tdsver=8.0 这个8.0对应的是sql server的版本,我这使用的是sql server 2005.
3、php编译安装(将freetds静态编译进php)
tar xzvf php-5.2.13.tar.gz
cd php-5.2.13
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/sbin/apxs --with-config-file-
path=/etc/ --with-mssql=/usr/local/freetds/
make
make install
cp php.ini-dist /etc/php.ini
ln -s /usr/local/php5/bin/php /usr/local/bin/php \\软连接,可以直接使用php命令
4、配置freetds
/usr/local/freetds/etc/freetds.conf 修改该配置文件
修改文件最后一个模块:
# A typical Microsoft server
[Mysql2k3] \\该符号用于连接sql
host = 192.168.200.173
\\sql数据库地址
port = 1433
\\sql 数据库端口
tds version = 8.0
5、linux连接sql测试
cd /usr/local/freetds/bin
./tsql -S Mysql2k3 -H 192.168.200.173 -p 1433 -U sa -P 123456
出现下图说明联通。(我不会使用命令)
6、将php文件放入apache目录下,重启apache。
7、测试连通性的php脚本
<?php
echo "begin\n";
if(mssql_connect('Mysql2k3','sa','123456')){
//if(mssql_connect('192.168.200.173','sa','123456')){
echo "成功 ";
}
else {
echo "失败 ";
}
?>
说明:php执行连接并不是使用sql server 的ip地址来连接的,而是通过freetds.conf里面的 【Mysql2k3】 这个连接的。