linux php 连接sqlservser
近期有个项目需求需要连接远程的sqlservser,给我上了一课,起初踩了很多坑甚至导致重装系统,网上大多都是win系统下装扩展的教程。最后好不容易找到几篇文档,感谢那些大佬。
直接正题
首先我们需要装的是 FreeTDS
什么是FreeTDS
简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源的程序库,是TDS(表列数据流 )协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库。它也包含一个ODBC的库。允许许多开源的应用软件比如Perl和PHP(或者你自己的c或C++程序)去连接到Sybase或 Microsoft SQL服务器。FreeTDS 以源码的形式被发布,几乎可以在任何操作系统上编译。意味着Unix和类Unix系统(包括著名的分支如Interix和QNX),还有Win32,VMS,和OSX。
原文链接:
https://blog.csdn.net/qq_37050993/article/details/82454946https://blog.csdn.net/qq_37050993/article/details/82454946
简单来说就是用于Linux操作微软的SQL数据库的库或者说软件,驱动(可能不太准确的描述)。
如何装:
1.首先需要编译安装FreeTDS
1.1、安装(这一部分也可以百度相关教程,我一时我不到我之前看的教程的,不过大同小异)
说明:一定要从官网下载最新的版本FreeTDS-0.95 ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
如果官网实在太慢建议从本人上传的这里一样很快下载:http://download.csdn.net/detail/21aspnet/9000357
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-0.95
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
make && make install
需要注意的就是这里的–with-tdsver=7.3,这个非常重要,你需要根据你的数据库版本选择正确的配置项,本人是SQLserve2008所以需要选择7.3.
FreeTDS-0.91只支持7.1,其余都会默认为5.0。只有FreeTDS-0.95是对Sqlserver2008的最佳配置
1.2、配置FreeTDS(这部分可以忽略)
#cd …/
#echo “/usr/local/freetds/lib/” > /etc/ld.so.conf.d/freetds.conf
#ldconfig
1.3、验证FreeTDS版本
这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。
首先看看版本信息
#/usr/local/freetds/bin/tsql -C
Compile-time settings (established with the “configure” script)
Version: freetds v0.95.19
freetds.conf directory: /usr/local/freetds/etc
MS db-lib source compatibility: yes
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: 7.3
iODBC: no
unixodbc: no
SSPI “trusted” logins: no
Kerberos: no
OpenSSL: no
GnuTLS: no
1.4、测试连通性
/usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码
1.5、修改配置
如果你想使用配置项,只要修改[egServer70]即可:
[egServer70]
host = 192.168.1.235 这个是数据库服务器IP
port = 1433
tds version = 7.1
2、安装mssql或pdo扩展
2.1、安装mssql
cd /usr/php-5.6.25/ext/mssql/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
cp /usr/local/php/lib/php/extensions/no-debug-zts-20131226/mssql.so /usr/local/php/extension/mssql.so(此处根据个人配置)
2.2、安装pdo
增加PHP扩展pdo的pdo_dblib
cd /usr/php-5.5.28/ext/pdo_dblib/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install
cp /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_dblib.so /usr/local/php/extension/pdo_dblib.so(此处根据个人配置)
在php.ini中添加extension = “mssql.so” 或 extension =“pdo_dblib.so” (安装一个足够了)
转载 https://www.cnblogs.com/ttiandeng/p/6559137.html
以上都是查找的各种教程,下面简单说一下自己的了解和搭建项目遇到的坑
首先我用的是tp3框架首先第一个坑是连接报驱动错误问题
无法加载数据库驱动: Think\Db\Driver\Dblib,解决方法下图。
其次就是多数据库配置和连接方式有其他配置的具体百度这个问题不大
u s e r = M ( ) − > d b ( 2 , " D B N E