linux机器连接sql,在linux下连接MS SQL Server
在工作中需要在Linux服务器上访问MS SQL Server数据库,我马上就想到了适用ODBC接口进行实现,毕竟它的移植性更好。
首先需要选一种支持MS SQL Server的ODBC驱动,商业的不能考虑,只能考虑开源的,于是,FreeTDS进入了视野,从官网(http://www.freetds.org/)上下载了它的0.91版本的包,在安装它之前需要安装libiconv,这个库用于进行编码转换。
开始安装!
1,从unixODBC官网(www.unixodbc.org)下载2.3.2版本
./configure --enable-gui=no ; make ; sudo make install
2,安装libiconv,./configure ; make ; sudo make install
3,安装freetds,./configure --with-tdsver=7.0 --with-unixodbc=/usr/local --with-libiconv-prefix=/usr/local --enable-msdblib
说明,with-tdsver用于指定TDS协议版本,7.0就能支持目前新版本的MS SQL Server,with-unixodbc用于指定 unixODBC的安装路径前缀。
开始配置!
在/usr/local/etc下有三个关键的配置文件,freetds.conf,odbcinst.ini,odbc.ini,分别先说明了三个配置文件的作用,freetds.conf是用于定义具体的驱动信息,包括数据库地址、端口、协议版本、编码等,odbcinst.ini用于定义ODBC驱动,odbc.ini用于定义ODBC数据源。
freetds.conf中定义如下:
[FTDSMSSQLDB]
host = 192.168.0.1
port = 1433
tds version = 7.0
instance = TKVSDB
client charset = GBK ;客户端的编码,即你的程序中实际使用的字符编码,freetds在提交数据时候会自动转换为服务器编码
initial block size = 1024
connect timeout = 60
timeout = 60
odbcinst.ini中定义如下:
[SQLServer]
Description = v0.91 with protocol v7.0
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtds.so
UsageCount = 1
CPTimeout = 5
CPReuse = 5
FileUsage = 1
odbc.ini中定义如下:
[TESTDSN]
Driver = SQLServer
Description = MS SQL Server
Servername = FTDSMSSQLDB
Database = TOMDB ;数据库名
颜色标注关联。
在程序中,就可以使用下面的连接串进行访问,如下:UID=sa;PWD=12345678;DSN=TESTDSN。
在实际使用中,我采用OTL(对ODBC的访问接口进行了封装)的API,这样能使代码更加简单一些,在引用otlv4.h头文件前需要加入下面几个宏,
#define OTL_ODBC_MSSQL_2008 // Compile OTL 4/ODBC, MS SQL 2005
#define OTL_FREETDS_ODBC_WORKAROUNDS // Enable the FreeTDS / ODBC workarounds for MS SQL
#define OTL_ODBC // Compile OTL 4/ODBC. Uncomment this when used with MS SQL 7.0/ 2000
#define OTL_ODBC_UNIX // Compile OTL 4 / ODBC. Uncomment this when used in Linux / Unix
#define OTL_STL // Turn on STL features
这样,就可以在代码中使用otl_connect进行访问了,简单的实例代码如下:
const char * dsn_string("UID=sa;PWD=12345678;DSN=TESTDSN");
otl_connect m_conn;
m_conn.rlogon(dsn_string,1);
后面就可以进行各种数据库操作了,详细请参见OTL的网站http://otl.sourceforge.net/。(当然,你需要设计一个自己的连接池,频繁的打开关闭连接是很耗时的)
希望对大家有帮助!
linux机器连接sql,在linux下连接MS SQL Server相关推荐
- john 探测(爆破)弱口令(包含linux机器,aix小机)/linux上的shadow文件破解,亲测可用
john 探测(爆破)弱口令(包含linux机器,aix小机),linux上的shadow文件破解 手头上上面的机器居多,而且这些机器也是几经转折到了奴家的手上,前期已经出现了有几个密码是1234的情 ...
- php和windows对应,哪个.so文件可以用于windows系统中与.dll文件相对应的linux系统,以便将php连接到ms sql server...
要从linux机器上的php5连接到Micrsoft SQL有点直观,你实际上需要使用sybase扩展和梨MDB2驱动程序来实现MS SQL.如果由于操作系统限制而无法安装MSSQL扩展,则PHP5中 ...
- quicksearch连接oracle,dos命令下连接oracle数据库表
Oracle表空间文件损坏后的排查及解决 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/zergskj/article/details/6303417 ...
- 本地连接不通的情况下连接vmbox
1. 将"本地连接"和"VirtualBox Host-Only Ethernet Adapter"进行桥接.具体操作:按下Ctrl键不松手,左击选定需要桥接的 ...
- linux机器的物理内存监控,Linux内存监控工具
本文为转载 http://www.opensolution.org.cn/archives/502.html 一.free 该工具主要是显示系统里可用和已用的内存 Linux 通常按一定的算法把常用的 ...
- linux机器不能上网,Deepin Linux 无法上网
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我又用回2008了 LINUX图形界面还是太慢 我的感觉太敏锐 虽然LINUX的图形界面的延迟 从你鼠标发出信号 到XSERVER的视觉呈现也就几百毫秒 ...
- 查看linux机器的磁盘空间,Linux查看磁盘空间命令分享
在windows下可以很方便的查看空间的.但是到了查看磁盘空间,你可能就有点摸不着头脑了,呵呵.不要急,我这就要给你解决这个问题. Df命令是Linux查看磁盘空间系统以磁盘分区为单位查看文件系统,可 ...
- linux机器名查看命令,Linux终端查找PC主机名的3种方法
就像Internet协议地址或IP地址为您的设备提供标识一样,主机名是另一个可以识别设备的参数.这是一串人类可以理解的字符.与IP地址不同,PC的主机名易于 记忆和调用.在本文中,我们将告诉您如何使用 ...
- oledb连接mysql_OLEDB 连接 和 效率(MS SQL 、Oracle 、ACESS)
这半年手头的一个项目,自己写代码的时候偏爱 MS SQL.部署服务器装的是 ORALCE 和 实际的现场是小型机,压根没有装数据库只好选用 ACESS ,三种环境不一致,才决定用 OLEDB 做数据库 ...
- 安装、连接MS SQL Server 2000的问题
1. 安装SQL 2000数据库和补丁时,如果出现"以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机."的提示. 如果不做改动,即使重新启动计算机也同样会 ...
最新文章
- 网页编程的过程中,怎样让改变标签的属性
- 成就更卓越、更有意义的人生
- 网络营销外包——网络营销外包专员如何做好网站搜索引擎优化
- Navigation execution entry point
- 红帽linux系统轴控系统,红帽发布企业版 Linux(RHEL) 8.0
- 【转】人工智能教程-前言
- Java 数组转字符串
- JasperServer 图表中文乱码解决
- python可以代替按键精灵吗_Python 假装自己是按键精灵
- 人工智能(AI)经历了怎样的发展历程?
- 常用的公共数据集(一)
- 以太网交换机的工作原理
- DBF文件简介(转)
- Pom.xml文件教程详解
- vue子元素点击事件与父元素点击事件冲突 子元素点击事件不触发
- unipush+java+个推实现app消息推送
- CSS控制文本超出打点显示
- 【GAMES104】 渲染的其他内容
- LeakCanary2.5版本使用
- NetBeans使用Consolas中文乱码的解决