链接里命令文本。注意文件位置就好。(亲测)
mssql 安装扩展dblib
编译安装FreeTDS
1.下载
下载过程有点慢,根据网速
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
2.解压编译
tar xvf freetds-patched.tar.gz
cd freetds-1.00.107
./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib --enable-shared --enable-static
make
make install
3.配置FreedTDS 文件:/usr/local/freetds/etc/freetds.conf
[sql2005]
host = **.***.**.*
port = 1433
tds version = 7.1
client charset = GBK
4.测试连接
tsql -S 192.168.1.110 -U sa -P 密码
出现1>,说明连接成功,mssql命令测试一下
use master
go
select * from sysdatabases
go
可以看到所有数据库
1. 错误:
-bash: tsql : command not found
查看tsql
#目录下存在tsql
cd /usr/local/freetds/bin
添加环境变量
vim /etc/profile
最下面添加
export PATH=$PATH:/usr/local/freetds/bin/
题外话 。非源码安装PHP。yum安装的 可用pecl, 安装pecl
yum install php-pear php-devel
配置PHP扩展
1.下载unixodbc-2.3.4 参考地址http://www.unixodbc.org/
ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.7.tar.gz
2.安装unixodbc
tar zxf unixODBC-2.3.7.tar.gz
cd unixODBC-2.3.7
./configure --with-php-config=/usr/local/php7/bin/php-config --with-pdo-odbc=unixODBC,/usr/local/unixODBC
make && make install
3.编译dblib 扩展
/usr/local/php/bin/phpize
./configure --with-pdo-dblib=/usr/local/freetds/ --with-php-config = /usr/local/php/bin/php-config
make && make install
4.配置unixODBC :
配置文件 /usr/local/unixODBC/etc/odbcinst.ini
[TDS]
Descripton = ODBC of FreeTDS for MS SQL 2005
Driver = /usr/local/freetds/lib/libtdsodbc.so
FileUsage = 1
Trace = Yes
TraceFile = /logs/odbc.log
UsageCount = 1
配置文件 /usr/local/unixODBC/etc/odbc.ini
[ODBC Data Sources]
sql2005dsn = My First Test DSN
[sql2005dsn]
Driver = TDS
#Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = My First Test DSN
Trace = No
Servername = sql2005
Database = 数据库名称
测试连接
/usr/local/unixODBC/bin/isql -v sql2005dsn 用户名 密码
6.配置文件添加编译好的扩展: pdo_dblib , PDO_ODBC
#查看是否扩展编译成功
/usr/local/php7/bin/php -m
PHP测试文件 :
$mssql = new PDO("dblib:version=8.0;charset=utf8;host=**.**.**.**;dbname=数据库名","用户名","密码!");
$sql = "select * from Account_Info where ai_id=1";
$res = $mssql->prepare($sql);
$res->execute();
while ($row = $res->fetch()) {
print_r($row);
}
注意!注意!注意!
php多版本!启动的php!是否装dblib扩展
#php 扩展信息
/usr/local/php7/bin/php -m
#启动php
/usr/local/php7/sbin/php-fpm
#删除yum安装的php
yum remove php-common