linux下使用odbc连接mysql_Linux环境下通过ODBC访问MSSql Server

为了解决Linux系统连接MSSql Server的问题,微软为Linux系统提供了连接MSSql Server的ODBC官方驱动。通过官方驱动,Linux程序可以方便地对MSSql Server进行访问。

官网提供了三个版本的驱动,分别用于以下发行版的Linux系统:

64bit Red Hat Enterprise Linux 5

64bit Red Hat Enterprise Linux 6

64bit SUSE Linux Enterprise 11 Service Pack 2

(实测 64bit CentOS 6.4 和 64bit CentOS 7.1 可以安装使用64bit Red Hat Enterprise Linux 6版本的ODBC驱动)

安装配置过程可以通过以下步骤完成:

1. 下载安装包

2. 安装unixODBC 2.3.0

# 以red hat 6版本为例tar xzf msodbcsql-11.0.2270.0.tar.gz

cd msodbcsql-11.0.2270.0./build_dm.sh

3. 安装Microsoft ODBC Driver 11 for SQL Server on Linux

./install.sh install

4. 通过命令行连接到数据库服务器

安装完驱动后就可以通过驱动自带的命令行工具测试连接了:

sqlcmd -S 192.168.1.10 -U sa -P sa -d master -Q 'select "Hello World"'

假如连接成功,该命令就会输出“Hello World”的查询结果

5. 配置unixODBC数据源

sqlcmd命令除了可以通过指定地址、用户名密码连接数据库外,还可以通过指定数据源名称连接数据库。数据源可以通过unixODBC所提供的odbcinst命令进行配置:

1). 建立模版配置文件 template.ini,内容如下

[DataSourceName]

Driver= ODBC Driver 11 forSQL Server

Server= 192.168.1.10UID=sa

PWD=sa

Database= master

2). 导入配置

odbcinst -i -s -l -f template.ini

执行完之后,可以再次通过sqlcmd命令工具来测试连接

sqlcmd -S DataSourceName -Q 'select "Hello World"'

该命令和前面的直接指定IP地址和用户名密码的命令得到同样的结果

6. 通过PHP连接到数据库服务器

该例子是通过修改CodeIgniter 3.0.0的mssql driver,把所有原mssql_* API 替换成odbc_* API,让所有数据库操作都通过ODBC连接进行,同时也复用了原CodeIgniter框架对mssql的支持。项目代码托管在github上:https://github.com/ratzhou/CodeIgniter。以下是使用修改后的CodeIgniter框架通过ODBC连接MSSql Server的例子:

class Test extendsCI_Controller {public functionindex() {

$config['dbdriver'] = 'mssql';$config['dsn'] = 'DataSourceName';

// 这里仍然需要指定数据库名和用户名密码

$config['database'] = 'my_database';$config['username'] = 'sa';$config['password'] = 'sa';$mssql = $this->load->database($config, true);$result = $mssql->get('my_table');var_dump($result->result_array());

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python画图代码对比_Python实现代码差异对比分析

在写代码过程,有时需要对比查看两个代码文件的不同,肉眼查看费事费力,很难进行对比找出不同。例如,程序运行报错时,会对比自己先前写的代码或者参考别人代码,有哪些地方不对,此时便可以通过该程…

insert into user mysql root_跳过授权表登录后使用insert into创建root权限用户

起因:刚刚搭建好的mysql数据库,做基础优化时,不小心把所有用户都删除了,并且退出了。没办法,只好跳过授权表登录,新建root用户。过程如下:一、停掉mysql,跳过授权登录[rootexplnk-za…

matplotlib 设置标注方向_Python 使用matplotlib画图添加标注、及移动坐标轴位置

import matplotlib.pyplot as pltimport matplotlibimport numpy as np#解决中文乱码问题,引入windows字体库myfont matplotlib.font_manager.FontProperties(fnamerC:/Windows/Fonts/msyh.ttf)x np.linspace(-3,3,50)y 2*x 1plt.plot(x,y)plt.figure(1,figsize…

flyway配置mysql_Flyway快速上手教程

一、Flyway是什么官网解释地非常全面,可先大致阅读一下。简单地说,flyway是一个能对数据库变更做版本控制的工具。二、为什么要用Flyway在多人开发的项目中,我们都习惯了使用SVN或者Git来对代码做版本控制,主要的目的就是为了解决…

mysql主从 单点_MySQL主从复制虽好,能完美解决数据库单点问题吗?

一、单个数据库 服务器 的缺点数据库服务器存在单点问题;数据库服务器资源无法满足增长的读写请求;高峰时数据库连接数经常超过上限。二、如何解决单点问题增加额外的数据库服务器,组建数据库集群;同一集群中的数据库服务器需要具…

java包含关系图_Java——Spring框架完整依赖关系图!再复习了解加工一下吧?

因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging,如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logg…

java ora 28040_Oracle 11g与112c中ORA-28040 错误解决

今天遇到一个连接192.168.56.102这个库报错Java.sql.SQLException: ORA-28040: No matching authentication protocolOracle 12C下查询此报错oralce:/oracle/db/app/12.1.0/db/network/admin> oerr ora 2804028040, 0000, "No matching authentication protocol"/…

java中有序数组比无序数值好_java面向对象的有序数组和无序数组的比较

packageaa;classArray{//定义一个有序数组private long[] a;//定义数组长度private intnElems;//构造函数初始化public Array(intmax){a new long[max];nElems 0;}//size函数public intsize(){returnnElems;}//定义添加函数public void insert(longvalue){//将value赋值给数组成…

java成员的访问权限_Java成员的访问权限

类中某成员(方法或属性,method or field)的访问权限:1、package(或称为friendly,但不用写出,friendly也不是关键字)权限,在同一包中的类和继承该类的子类可以访问;2、public权限,任何类都可以访问;3、priva…

java jvm 加载类的顺序_java JVM-类加载静态初始化块调用顺序

测试类加载的全过程public class Have {static {System.out.println("加载Have");//先加载Have再调用main方法}public static void main(String[] args) throws Exception {System.out.println("main方法"); //先调main方法A anew A(); //先初始化父类&…

lua jit java jit_Lua JIT 2.0 发布了,一百五十倍的性能提升!

jzhang2014-4-7 15:44:00阅读(2432)评论(2)先把官方主页摆出来:外链网址已屏蔽luajit.org/luajit.htmlLua JIT 1.0早就有了,但是性能一般,这次的2.0是重新编写的,优化效果有了质的飞跃。下面这个表是作者的测试结果,其…

java实验_Java实验报告(实验一)

课程:Java程序设计 班级: 1351姓名:王玮怡 学号:20135116成绩: 指导教师:娄嘉鹏 实验日期:2015.04.15实验密级: 预习程度&#…

java web 文件上传工具类_JavaWeb中实现文件上传的方式有哪些?

上回我们说了下文件下载的方式有哪些,这次我们从不同的环境下简单来说说文件上传的方式有哪些。文件上传的方式Servlet2.5 方式Servlet3.0 方式SpringMVC 方式案例实操Servlet2.5 方式文件上传涉及到前台页面的编写和后台服务器端代码的编写,前台发送文件…

socket connect java_网络编程 – 为什么Java的socket.connect()消耗100%的cpu资源?

我创建了一个线程池并为它提供了50个连接到服务器的任务.所以一旦完成连接,发送一些数据,然后断开连接.它的读取超时设置为5秒(当然是5000长).我甚至将线程池设置为最大大小为1.然后在linux上启动它,然后运行htop(更好的top版本)来检查CPU使用率.我一直在100%看到我…

python renamer模块_artellapipe-tools-renamer-以简单的方式重命名DCC对象的工具-Tomas Poveda...

作者:Tomas Poveda### 作者邮箱:tpovedatdgmail.com### 首页:https://github.com/ArtellaPipe/artellapipe-tools-renamer### 文档:None### 下载链接artellapipe-tools-renamerTool to rename DCC objects in an easy way.. image:: https://travis-ci.com/ArtellaPipe/artella…

类库java_Java类库和常用类库介绍

Java类库和常用类库介绍2018-09-20Java类库和常用类库介绍——序作者:zccstJava类库概念:Java的应用程序接口(API)以包的形式来组织,每个包提供了大量的相关类、接口和异常处理类,这些包的集合就是Java的类库包名以Java开始的包是…

python自己重启自己程序_python 自动重启本程序

#!/usr/local/bin/python#-*- coding: UTF-8 -*-#####################################################################import os,time#def close():# print "程序重启!!!!"# print time.strftime(%Y.%m.%d-%H.%M.%S…

centos上如何装python_centos如何安装Python3

摘自:https://www.cnblogs.com/Mr-wangxd/p/7028285.htmlLinux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的&…

gnu.getopt java_c – 用于GNU getopt()的-W选项是什么?

The -W (capital-W) option shall be reserved for vendor options.If optstring contains W followed by a semicolon ( ; ), then -W foo is treated as the long option --foo. (The -W option is reserved by POSIX.2 for implementation extensions.)有人能够以更清晰的方…

java 与python读写文件速度_Python和Java读写文件的对比

博主平时用Python比较多,最近因为工作需要使用Java编程,比较之下,发现Python读写文件真是太方便了!Java读写文件非常繁琐,简直让人抓狂!Python读写文件的语句读文件with open(readFile, r) as inFile:for l…