[linux]unixODBC的安装配置说明
什么是unixODBC:
ODBC(Open Database Connect)是由Microsoft?公司于1991 年提出的一個(gè)開放的,用于訪問數(shù)據(jù)庫的統(tǒng)一接口規(guī)范。
unixODBC的是為非Window平臺(tái)的系統(tǒng)實(shí)現(xiàn)ODBC規(guī)范接口的中間件。
unixODBC的安裝
有GUI的用戶可以使用ODBCConfig tool 安裝。教程在官網(wǎng)文檔有詳細(xì)介紹,不再贅述。地址:http://www.unixodbc.org/doc/UserManual/
?以下介紹沒有GUI界面的安裝說明,同樣也是來自官方文檔,地址:http://www.unixodbc.org/odbcinst.html
我通過 apt-get install unixODBC 進(jìn)行安裝,安裝完成后對odbcinst.ini和odbc.ini文件進(jìn)行配置修改。
自己編譯或自己解壓安裝的需要自行摸索,安裝完成后對odbcinst.ini和odbc.ini文件的修改是一致的。
?
?為了更清楚了解配置的過程,需要先了解一些背景信息:
什么是ini文件:
ODBC首次出現(xiàn)在Window 3.0中。當(dāng)時(shí)Windows使用.ini文件去包含配置信息。
ini文件的文本格式為:
[section1]
entry1 = value
entry2 = value
[section2]
entry1 = value
entry2 = value
...
?
雖然后來Windows NT將這些ini文件替換成了注冊表的形式,但是ODBC中用于訪問這些配置信息的API仍然保持不變。
unixODBC仍然保留了用ini存儲(chǔ)配置信息的習(xí)慣。
系統(tǒng) vs 用戶
ODBC會(huì)區(qū)分兩種類型的ini文件。
系統(tǒng)ini文件能被所有用戶訪問,但是不能修改;用戶ini文件則是針對特定用戶的,并且能被該特定用戶修改。
ODBC的系統(tǒng)文件是odbcinst.ini和odbc.ini。用戶文件是~/.odbc.ini(注意開頭.號(hào)),并包含在各自用戶的home目錄下。
系統(tǒng)文件odbcinst.ini包含對所有用戶可訪問的ODBC驅(qū)動(dòng)信息;odbc.ini文件包含所有用戶可訪問的DSN信息。這些'系統(tǒng)DSN'對于如web服務(wù)器這樣,不以真實(shí)用戶身份運(yùn)行的應(yīng)用十分有用,因?yàn)檫@些程序不會(huì)有自己的home目錄來存放.odbc.ini文件。
舉一個(gè)含ODBC支持的Apache和PHP的例子。當(dāng)http server第一次啟動(dòng)時(shí),它通過root調(diào)用SQLAllocEnv。然后它再切換到指定用戶去調(diào)用SQLConnect。此時(shí)如果DSN不是一個(gè)系統(tǒng)DSN,就會(huì)出現(xiàn)fails。
FILEDSN
ODBC 3 還有第三種類型的DSN, file DSN。目前unixODBC還不支持FILEDSN。略。
文件路徑
odbcinst.ini和odbc.ini文件默認(rèn)放在/usr/local/etc下面。但由于現(xiàn)在能通過指定配置腳本的prefix來指定文件路徑,所以如果在configure的時(shí)候指定的了prefix,則文件路徑在{prefix}/etc下面
文件內(nèi)容
odbcinst.ini
以下是一個(gè)示例:
[PostgreSQL] Description = PostgreSQL driver for Linux & Win32 Driver = /usr/local/lib/libodbcpsql.so Setup = /usr/local/lib/libodbcpsqlS.so FileUsage = 1[PostgreSQL]是driver的名字,這里表明這是一個(gè)PostgreSQL driver。
Driver 和Setup路徑指出ODBC driver和setup libs 的位置。
當(dāng)我們使用ODBCConfig工具添加新的DSN時(shí),會(huì)調(diào)用這個(gè)setup lib。但是由于現(xiàn)在我們是非GUI安裝,所以其實(shí)可以不用管他。
Driver路徑最為關(guān)鍵。當(dāng)DSN調(diào)用SQLConnect或SQLDriverConnect時(shí),driver manager會(huì)動(dòng)態(tài)載入這些庫。若這里指定到了錯(cuò)誤的Driver,則DSN無法工作。
FileUsage由odbcinst 命令自己添加,所以如果你使用的是文本編輯器,則需要自己添加。
Threads
由于1.6版本之后添加了多線程支持,所以如果driver manager構(gòu)建了多線程支持,則可以配置:
Threading = 2
這項(xiàng)配置改變了默認(rèn)的線程序列化等級(thread serialization level).
[.]odbc.ini
odbc.ini的內(nèi)容要復(fù)雜一些,主要是因?yàn)椴煌膁river需要不同的配置項(xiàng)。
最后列出了支持所有driver的配置項(xiàng),以供參考。這些配置項(xiàng)可以通過odbcinst命令,或文本編輯器來添加。
對應(yīng)上面例子中的driver的配置項(xiàng):
Driver項(xiàng)用于匹配odbcinst.ini的[section]部分。不過也可以直接指向driver路徑,只是可能需要注意路徑訪問權(quán)限的問題。
其他數(shù)據(jù)庫的配置項(xiàng)例子:
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 = testNNTP 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 = saSybase 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 ?轉(zhuǎn)載于:https://www.cnblogs.com/oDoraemon/p/5364271.html
總結(jié)
以上是生活随笔為你收集整理的[linux]unixODBC的安装配置说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SCU3033 Destroying a
- 下一篇: Linux系统编程24:基础IO之在Li