ubuntu php 连接sql server

1.下载最新的freetds ,访问 http://www.freetds.org/, 或者在 ubuntu上用 wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz 下载稳定的版本。

2.安装freetds 和 配置 freetds

cd 进入freetds所在目录,

$ tar zxvf freetds-stable.tgz(解压)

$ ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib

$ make

$ make install

configure 步骤和 make 步骤可以用 普通用户的权限来完成,install 步骤最好用root 用户,或者是对/usr/local/ 目录有读写的权限的用户.

配置:

编辑/etc/ld.so.conf,在其中插入一行:

/usr/local/freetds/lib

然后运行以下指令使更改生效:

ldconfig

编辑freetds 的配置文件,配置数据库连接信息

vim /usr/local/freetds/etc/freetds.conf 内容如下:

"/usr/local/freetds/etc/freetds.conf" 40L, 1126C written

[email protected]:~$ sudo vim  /usr/local/freetds/etc/freetds.conf

#   $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $

#

# This file is installed by FreeTDS if no file by the same

# name is found in the installation directory.

#

# For information about the layout of this file and its settings,

# see the freetds.conf manpage "man freetds.conf".

# Global settings are overridden by those in a database

# server specific section

[global]

# TDS protocol version

tds version = 7.1

# Whether to write a TDSDUMP file for diagnostic purposes

# (setting this to /tmp is insecure on a multi-user system)

;       dump file = /tmp/freetds.log

;       debug flags = 0xffff

# Command and connection timeouts

;       timeout = 10

;       connect timeout = 10

# If you get out-of-memory errors, it may mean that your client

# is trying to allocate a huge buffer for a TEXT field.

# Try setting ‘text size‘ to a more reasonable limit

text size = 64512

# A typical Sybase server

#[egServer50]

#host = symachine.domain.com

#port = 5000

#tds version = 5.0

# A typical Microsoft server

[egServer70]

host = 115.28.239.229

port = 1433

tds version =7.1

client charset=utf8

请注意绿色修改的部分

在这里找到egServer70节点,配置你数据所在的服务器地址,一般端口不用改,除非数据库访问用的是其它端口。注意一般这个配置文件中是没有 client charset 的选项的,

需要手动添加,防止数据库乱码。这里设置成 utf8 , 这个编码要和数据库编码一致。修改完成之后就保存退出。然后验证这个配置是否是ok 的。

cd /usr/local/freetds/bin/

./tsql -H

115.28.239.229 -p 1433 -U 用户名 -P 密码 -D 数据库

注意你的密码有特殊字符例如 !和 # 之类的,那么需要加上转义符 \!\# ,这样就会被 freetds 识别。

如果执行该命令返回的是 如下信息

Unexpected EOF from the server

那说明是freetds 的版本信息不正确,关于freetds 版本的信息 可以参考 http://www.freetds.org/userguide/choosingtdsprotocol.htm

那么对应的版本信息修改只需要在 /usr/local/freetds/etc/freetds.conf 中修改
特定数据库连接的tds version 修改内容的绿色部分

.php 连接 SQLserver

上面的测试直接用freetds 测试数据库是否可以链接数据库,那么怎么才能让php也支持SqlServer 呢? 这里需要用到php5的开发者模式,之前我默认只安装了php5,

所以这里你需要安装一下php5-dev ,直接用命令 apt-get install php5-dev,安装完成后在/usr/bin 目录下就会看到 phpize5 等相关php 开发这模式的插件

同样也可以用 wget 下载。下载后用 tar xf php-5.5.9.tar.gz ,

wget http://us2.php.net/get/php-5.5.9.tar.xz/from/this/mirror

这个地方下载下来可能是mirror
那么用 tar xf mirror

进入到
ext/mssql 目录执行以下命令:

/usr/bin/phpize5

./configure --with-php-config=/usr/local/php/bin/php-config5 --with-mssql=/usr/local/freetds/

make

sudo make install

记得make install 要用sudo 命令

(注意:php-config5 可能各个系统存放的位置不一样,请使用sudo find -name php-config5
来查找目录 freetds 类似 )

安装成功后,你可以在 /usr/lib/php5/20121206 这目录下有 mssql.so ,当然这个文件的大体目录是位于 /usr/lib/php5 ,至于后面有年月日组成的这个文件夹,在不同不服务器上是不一样的。

接下来就编辑php.ini 配置文件 /etc/php5/apache2/php.ini

在文件中加上 extension=mssql.so

然后重启 apache  service apache2 restart

测试:

在/var/www/html 目录下新建 index.php 文件

echo phpinfo();

进一步测试代码:

header("Content-type: text/html; charset=utf-8");

$msdb=mssql_connect("115.28.239.22:1433","sa","");

if (!$msdb) {

echo "connect sqlserver error";

exit;

}

mssql_select_db("drupaldb",$msdb);

$result = mssql_query("SELECT  * FROM test", $msdb);

while($row = mssql_fetch_array($result)) {

var_dump($row);

}

mssql_free_result($result);

ubuntu php 连接sql server

时间: 2024-11-11 07:15:49

ubuntu php 连接sql server的相关文章

SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)

本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一.   创建Ubuntu系统(Create Ubuntu System) 1.      前提准备 由于本文主要研究SQL Server 2017在Linux上的搭建方法,从Install SQL Server on Linux中得知当前SQL Server 2017 CTP 2.0对于Ubuntu系统支持16.04和16.10,同时可以直接下

DataBase --- Intellij IDEA 14.1.4使用Java连接SQL Server教程

Java连接数据库的方法大体分为两种:正向连接和反向连接.反向连接需要编译器提供相关的插件来支持,目前主流的java IDE都支持反向连接.这里主要对正向连接做一个经验总结. 一.数据库的配置 1.新建一个登录用户 登录数据库 进入如下界面: 2.创建用户并配置用户权限 列表左侧中选择“安全性”-->“登陆名”,右键选择“新建登录名”,填写登陆名和密码. 左侧选择“服务器角色”,配置用户权限.权限根据实际使用来赋予,最后一个"sysadmin"是管理员权限,一般选这个就行. 退出

Java连接Sql Server 2008的简单数据库应用

1.从微软官网下载JDBC驱动包 sqljdbc_4.0.2206.100_chs.exe,双击解压文件到指定目录,我的指定目录是: C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs 下面是解压后的文件, 如果JDK版本低于6.0,则需使用sqljdbc.jar; 6.0以上版本使用sqljdbc4.jar,使用sqljdbc4.jar版本好处可以省略 Class.forName("com.micr

Visual Studio 连接 SQL Server 的connectionStringz和

最近C#和数据结构的课程设计多次用到了C#中连接SQL Server数据库的问题,其中涉及到数据库文件的附加和连接问题. 其中最烦人的就是  SqlConnection(String connStr)其中的连接字符串问题. 这里发现一个简便的不用自己写连接命令的办法. 首先是通过VS连接上你的数据库文件. 点击导航栏的工具->连接到数据库 我这里统一使用了用windows身份验证,如果你下载了 SQL Server Manager Studio,并有相关的用户名密码,可以使用用SQL Serve

详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作

总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. 操作数据库 7. 关闭连接 代码如下: ******************连接数据库******************* 1 package zj6_Test; 2 import java.sql.*; 3 public class Zj6_3 { 4 /** 5 * 使用Statement接口

ThinkPHP连接sql server数据库

原文:ThinkPHP连接sql server数据库 亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置问题. 我的PHP版本是5.3,就说5.3的方法吧 1.首先要下载 php_pdo_sqlsrv_53_ts_vc9.dll php_sqlsrv_53_ts_vc9.dll 下载地址:http://share.weiyun.com/dc589f

delphi连接sql server的字符串2011-10-11 16:07

delphi连接sql server的字符串2011-10-11 16:07 一.delphi连接sql server 放一个连接组件 ADOConnection, 其它组件TADODataSet,TADOQuery等的connection指向ADOConnection就可以了. 你可以双击ADOConnection,使用它的向导.也可以使用下面的代码 function OpenADOConn:boolean; begin result:=false; try with ADOConnectio

使用JDBC连接SQL Server

源文:http://bbs.bc-cn.net/dispbbs.asp?boardid=12&id=140292 整理:秋忆 接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此整理方法(使用Eclipse 3.2)如下. 准备工作 首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只

java连接Sql server 2005

最近在做老师布置的SQL Server大作业,其中有一道题就是用java连接SQL Server.以前连接数据库都是在MyEclipse中完成的.这次我换用记事本连接.下面是我的步骤: 1.首先,下载java连接SQL Server的驱动:sqljdbc 2.解压之后,找到sqljdbc.jar的所在位置,我的是:D:\Program Files (x86)\sqljdbc\sqlDriver\sqlDriver 3.配置环境变量:在系统的classpath中将sqljdbc.jar的文件位置添