[linux]unixODBC的安装配置说明
什么是unixODBC:
ODBC(Open Database Connect)是由Microsoft 公司于1991 年提出的一个开放的,用于访问数据库的统一接口规范。
unixODBC的是为非Window平台的系统实现ODBC规范接口的中间件。
unixODBC的安装
有GUI的用户可以使用ODBCConfig tool 安装。教程在官网文档有详细介绍,不再赘述。地址:http://www.unixodbc.org/doc/UserManual/
以下介绍没有GUI界面的安装说明,同样也是来自官方文档,地址:http://www.unixodbc.org/odbcinst.html
我通过 apt-get install unixODBC 进行安装,安装完成后对odbcinst.ini和odbc.ini文件进行配置修改。
自己编译或自己解压安装的需要自行摸索,安装完成后对odbcinst.ini和odbc.ini文件的修改是一致的。
为了更清楚了解配置的过程,需要先了解一些背景信息:
什么是ini文件:
ODBC首次出现在Window 3.0中。当时Windows使用.ini文件去包含配置信息。
ini文件的文本格式为:
[section1]
entry1 = value
entry2 = value
[section2]
entry1 = value
entry2 = value
...
虽然后来Windows NT将这些ini文件替换成了注册表的形式,但是ODBC中用于访问这些配置信息的API仍然保持不变。
unixODBC仍然保留了用ini存储配置信息的习惯。
系统 vs 用户
ODBC会区分两种类型的ini文件。
系统ini文件能被所有用户访问,但是不能修改;用户ini文件则是针对特定用户的,并且能被该特定用户修改。
ODBC的系统文件是odbcinst.ini和odbc.ini。用户文件是~/.odbc.ini(注意开头.号),并包含在各自用户的home目录下。
系统文件odbcinst.ini包含对所有用户可访问的ODBC驱动信息;odbc.ini文件包含所有用户可访问的DSN信息。这些'系统DSN'对于如web服务器这样,不以真实用户身份运行的应用十分有用,因为这些程序不会有自己的home目录来存放.odbc.ini文件。
举一个含ODBC支持的Apache和PHP的例子。当http server第一次启动时,它通过root调用SQLAllocEnv。然后它再切换到指定用户去调用SQLConnect。此时如果DSN不是一个系统DSN,就会出现fails。
FILEDSN
ODBC 3 还有第三种类型的DSN, file DSN。目前unixODBC还不支持FILEDSN。略。
文件路径
odbcinst.ini和odbc.ini文件默认放在/usr/local/etc下面。但由于现在能通过指定配置脚本的prefix来指定文件路径,所以如果在configure的时候指定的了prefix,则文件路径在{prefix}/etc下面
文件内容
odbcinst.ini
以下是一个示例:
[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
FileUsage = 1
[PostgreSQL]是driver的名字,这里表明这是一个PostgreSQL driver。
Driver 和Setup路径指出ODBC driver和setup libs 的位置。
当我们使用ODBCConfig工具添加新的DSN时,会调用这个setup lib。但是由于现在我们是非GUI安装,所以其实可以不用管他。
Driver路径最为关键。当DSN调用SQLConnect或SQLDriverConnect时,driver manager会动态载入这些库。若这里指定到了错误的Driver,则DSN无法工作。
FileUsage由odbcinst 命令自己添加,所以如果你使用的是文本编辑器,则需要自己添加。
Threads
由于1.6版本之后添加了多线程支持,所以如果driver manager构建了多线程支持,则可以配置:
[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
Threading = 2
这项配置改变了默认的线程序列化等级(thread serialization level).
[.]odbc.ini
odbc.ini的内容要复杂一些,主要是因为不同的driver需要不同的配置项。
最后列出了支持所有driver的配置项,以供参考。这些配置项可以通过odbcinst命令,或文本编辑器来添加。
对应上面例子中的driver的配置项:
[PostgreSQL]
Description = Test to Postgres
Driver = PostgreSQL
Trace = Yes
TraceFile = sql.log
Database = nick
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
Driver项用于匹配odbcinst.ini的[section]部分。不过也可以直接指向driver路径,只是可能需要注意路径访问权限的问题。
其他数据库的配置项例子:
Templates
The templates for the included drivers are...
Postgress
[PostgreSQL]
Description = Test to Postgres
Driver = PostgreSQL
Trace = Yes
TraceFile = sql.log
Database = nick
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
Mini SQL
[Mini SQL]
Description = MiniSQL
Driver = MiniSQL
Trace = No
TraceFile =
Host = localhost
Database =
ConfigFile =
MySQL
[MySQL-test]
Description = MySQL test database
Trace = Off
TraceFile = stderr
Driver = MySQL
SERVER = 192.168.1.26
USER = pharvey
PASSWORD =
PORT = 3306
DATABASE = test
NNTP driver
[nntp Data Source]
Description = nntp Driver
Driver = nntp Driver
Trace = No
TraceFile =
Host = localhost
Database =
Port =
FreeTDS driver
Driver = TDS
Description = Northwind sample database
Trace = No
Server = 192.168.1.25
Database = Northwind
UID = sa
Sybase SQL Anywhere 5.0
Thanks Greg.
[Sybase SQL Anywhere 5.0]
Driver=Sybase SQL Anywhere 5.0
Description=Sybase SQL Anywhere 5.0 ODBC Driver
Userid=dba
Password=sql
DatabaseFile=sademo.db
[linux]unixODBC的安装配置说明的更多相关文章
- 【PHP】linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明(转)
linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明:一.mysql5.0.2的安装配置过程及说明:1. #tar -zvxf mysql-5.0.2-alpha. ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- linux 之静默安装oracle
Web服务器上面的Linux一般是不会有图形界面的,所有通过图形界面来安装Linux的方式在没有图形界面的Linux上面是行不通的,我们要使用的安装方式叫做Linux的静默安装.即在没有图形界面的Li ...
- linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...
- 【Linux】ODBC安装
ODBC介绍 ODBC是Open Database Connect 即开发数据库互连的简称,它是一个用于访问数据库的统一界面标准.ODBC引入一个公共接口以解决不同数据库潜在的不一致性,从而很好的保证 ...
- Linux系统SVN安装指导配置说明
Linux 系统 SVN 安装指导配置说明 1 安装 SVN 前检查: 检查是否安装 SVN : rpm -qa subversion 查看安装 SVN 版本信息: svnserve --vers ...
- Linux下RabbitMQ安装、运行与管理
Linux下RabbitMQ安装.运行与管理 安装erlang 安装参考官网 RabbitMQ的安装需要Erlang的基础环境,必须按照RabbitMQ Erlang版本要求进行安装. 关于Erlan ...
- NoSql1 在Linux(CentOS)上安装memcached及使用
前言: 今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
随机推荐
- WebKit示例解读
如果你曾经在你的App中使用UIWebView加载网页内容的话,你应该体会到了它的诸多不尽人意之处.UIWebView是基于移动版的Safari的,所以它的性能表现十分有限.特别是在对几乎每个Web应 ...
- JavaScript基础——处理字符串
String对象是迄今为止在JavaScript中最常用的对象.在你定义一个字符串数据类型的变量的任何时候,JavaScript就自定为你创建一个String对象.例如: var myStr = &q ...
- ActiveMQ的几种消息持久化机制
为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式 ...
- Linux内核驱动之GPIO子系统(一)GPIO的使用
转自:http://blog.csdn.net/mirkerson/article/details/8464290 一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt , ...
- SVN 升级后出现You need to upgrade the working copy first.
今天将svn更新后,出现 svn: The working copy at 'E:\591woospace\kst_fashion_alipay_v1.2.0\src\com\kstapp\wansh ...
- MD5与Base64的思考
MD5加密是对任意长的数据使用MD5哈稀算法散列为4个32位组,若格式化为ASCII字符则为16字符,若格式化16进制表示,则为32字符. (MD5的具体算法请参阅相关书籍和资料) MD5广泛用于数 ...
- MySQL数据库自带备份与恢复工具:MySQLdump.exe与mysql.exe
数据库的备份工作是保护数据库正常运行的关键,以下的文章主要讲述的是MySQL数据库备份的一些小妙招,我们大家都知道使用MySQL dump备份数据库的用户所需要的权限相对而言还是比较小的,只需要sel ...
- TCP通讯程序设计
TCP通讯程序设计 这里主要包含客户机和服务器的编程. 一.编程模型函数化 使用函数说明:socket的理解 服务器: 创建socket使用函数----->socket 绑定地址使用函数---- ...
- 第十四篇:在SOUI中使用定时器
前言 定时器是win32编程中常用的制作动画效果的手段.在Win32编程中,可以使用::SetTimer来创建定时器,定时器消息会被会发到调用SetTimer时指定的HWND. 在SOUI中一般来说只 ...
- visio调整画布大小和旋转画布(转)
1.调整画布大小: 鼠标移至画布边界(注意不能是顶点附近),按下ctrl,就会出现双向箭头,拖动鼠标即能调整画布大小. 2.旋转画布: 鼠标移至画布顶点或附近,按下ctrl, 出现单箭头优弧,移动鼠标 ...