linux编译安装mssql客户端和配置php连接mssql

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS SQL Server,基础系列 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

凡是连接数据库,必须安装客户端,我一般写博客都不写原理,但是后来发现回头看自己写的自己都看不懂,所以这章博客会多一点原理性的东西。


数据库的连接一般都是在客户端上完成的,MySQL也不例外,安装mysql时一般都会这么安装:

1
#yum install mysql mysql-server

上面的mysql就是安装的客户端,mysql-server就是服务端,不安装客户端(mysql)就没办法执行mysql连接命令:mysql -u user -p pass -h -P port 

而sqlserver同样需要客户端,下面讲的就是在linux下安装sqlserver 2008的客户端freetds


安装环境:

1
2
3
#centos6.8
#php5.6
#sqlserver2008


  1. 下载freetds,一般都会在官网下载,这个开源的想必没人会用盗版。


1
2
3
4
5
6
wget  ftp : //ftp .freetds.org /pub/freetds/stable/freetds-patched . tar .gz
#linux下载有点慢,可以在windows上下载,然后再上传至linux上。
tar  zxf freetds-patched. tar .gz
cd  freetds-1.00.27
. /configure  --prefix= /usr/local/freetds  --with-tdsver=7.3 -- enable -msdblib
make  &&  make  install


2.导入ldconfig

1
2
  echo  "/usr/local/freetds/lib/"  /etc/ld .so.conf.d /freetds .conf
  ldconfig


3.查看安装的版本: 

1
/usr/local/freetds/bin/tsql  -C

4.测试能否连接sqlserver:

1
/usr/local/freetds/bin/tsql  -H 10.10.10.10 -p 1433 -U sa -P password

5.添加PHP扩展mssql和pdo_dblib,这是php两种连接mssql的方式,只安装mssql也可以。

注意:一般安装php会选择两种方式,一种是编译安装,一种是yum安装。下面分别来讲解两种方式的安装方式:

1)yum安装的php

#很简单,直接yun安装mssql插件即可:

1
2
yum  install  php-pdo -y
yum  install  php-mssql -y

2)编译安装的php

1
#进入到php的安装包中,安装mssql插件
1
2
3
4
cd  /home/tools/php-5 .6.20 /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


1
2
3
4
5
#安装pdo_dblib
cd  /home/tools/php-5 .6.20 /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

在php.ini中添加mssql和pdo_dblib:

1
2
3
4
5
6
7
mv  /usr/local/php/lib/php/extensions/no * /mssql  /usr/local/php/lib/php/extensions/
mv  /usr/local/php/lib/php/extensions/no * /pdo_dblib  /usr/local/php/lib/php/extensions/
#把前面安装的扩展插件生成的文件移动到extension目录下
vi  /usr/local/php/lib/php .ini
extension_dir =  "/usr/local/php/lib/php/extensions"
extension =  "mssql.so"  
extension =  "pdo_dblib.so"


3)重启php,看扩展插件有没有生效:

#编译一个php测试文件:

1
2
3
4
vi  /www/html/test .php
<?php
phpinfo();
?>

用浏览器打开上面的测试文件,会看到如下信息,代表成功安装:

http://ip/test.php

wKiom1kauemDpP72AAC6lkTfzxw811.jpg


6.测试mssql连接sqlserver2008:

#编辑一个测试文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vi  /www/html/connect_sql .php
<?php  
header( "Content-type: text/html; charset=utf-8" );    
$msdb=mssql_connect( "10.10.10.10:1433" , "sa" , "password" );  
if  (!$msdb) {  
     echo  "connect sqlserver error" ;  
     exit ;  
     }  
mssql_select_db( "test" ,$msdb);  
$result = mssql_query( "SELECT top 5 * FROM student" , $msdb);  
while ($row = mssql_fetch_array($result)) {  
  print_r($row);  
}  
mssql_free_result($result);  
?>

#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。


7.测试pdo_dblib连接sqlserver2008:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#创建一个测试文件
vi  /www/html/connect_db .php
<?php  
header( "Content-type: text/html; charset=utf-8" );  
   try {  
     $ hostname  "10.10.10.10" ;  
     $port = 1433;  
     $dbname =  "test" ;  
     $username =  "sa" ;  
     $pw =  "password" ;  
     $dbh = new PDO ( "dblib:host=$hostname:$port;dbname=$dbname" , "$username" , "$pw" );  
   } catch (PDOException $e) {  
     echo  "Failed to get DB handle: "  . $e->getMessage() .  "\n" ;  
     exit ;  
   }  
    
   $stmt = $dbh->prepare( "SELECT top 5 * FROM student" );  
   $stmt->execute();  
   while  ($row = $stmt->fetch()) {  
     print_r($row);  
   }  
   unset ($dbh);  unset ($stmt);  
   
?>

#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。


本文转自 王家东哥 51CTO博客,原文链接:http://blog.51cto.com/xiaodongge/1926312


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
71 9
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
54 5
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
80 2
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
110 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
400 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
89 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
80 2
|
21天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
50 14
Linux 10 个“who”命令示例