⑴ odbc linux下怎麼安裝
如果有yum 源中包括libiodbc ,可直接使用yum install libiodbc* 或在yumex 中搜索iodbc 的包進行安裝,否則需要到網上下載相關的rpm 包進行安裝。
下載libiodbc-3.52.6-1.i386.rpm
下載libiodbc-devel-3.52.6-1.i386.rpm
下載 libiodbc-admin-3.52.6-1.i386.rpm
下載libiodbc-3.52.6-1.src.rpm
rpm -ivh libiodbc-3.52.6-1.i386.rpm
rpm -ivh libiodbc-devel-3.52.6-1.i386.rpm
rpm -ivh libiodbc-admin-3.52.6-1.i386.rpm
rpm -ivh libiodbc-3.52.6-1.src.rpm
安裝wxGTK
./configure --with-odbc --enable-monolithic --enable-xrc --enable-unicode
make
make install
安裝 codeblocks
cp /usr/local/share/aclocal/wxwin.m4 /usr/share/aclocal/wxwine.m4
./bootstrap ( 可能需執行aclocal)
./configure --with-contrib-plugins=all
make
makeinstall
連接 SQL Server
安裝 freetds
yum install freetds *
( 或安裝yum yumex 後,執行yumex ,到所有包里搜索freetds, 安裝找到的包,有三個,另兩個是develop包和doc 包)
⑵ 請教linux系統中如何通過ODBC訪問遠端SQL SERVER資料庫
freetds本身就能夠連接sql server資料庫。我用他來查詢sybase資料庫。由於歷史上的原因,sql server的底層其實是MS從sybase公司買來的。所以,freetds既能連接sybase,也能夠連接sql server。
我當時其實就是把freetds裡面的一個應用程序的代碼稍微修改了一下,就能夠連接sybase來進行查詢了。具體的該文件的位置為freetds-0.61.2/src/apps/tsql.c。你可以編譯該文件然後學會如何使用。一般情況下你直接調用
tsql -H host_ip_address -p host_port -U username -P passwd
這里host_ip_address就是你sql server伺服器的ip地址,host_port是sql
server的埠號,sybase默認是5000,如果我沒猜錯,sql
server應該也是。username和passwd應該不用說了。tsql這個工具有一點問題就是如果passwd為空就無法登錄,你可以自己修改代
碼來解決這個問題。
我想你把這個tsql.c文件好好看看,就應該會知道如何使用freetds的函數庫了。比較簡單的。
⑶ 如何在Linux下通過ODBC配置訪問遠程資料庫,0
例如:sqlplus
username/password@servicename
於是想,用我的兩台電腦雙機互聯試一試,也玩個遠程連接。實驗如下:
首先在我的台式機上安裝了Oracle9i的資料庫管理系統,並建立了一個資料庫實例:xy然後為該實例新增了一個用戶,用戶名和密碼都是kxy01
。啟動實例xy後,在台式機上,直接在cmd環境鍵入:sqlplus kxy01/kxy01@xy
就可以連接上資料庫,呵呵,想來本地連接都是不費吹灰之力就行的。
之後,在我的筆記本上安裝了Oracle9i的Client工具。然後試著直接用上述命令訪問,顯然是不行的,系統返回無法解析服務名的錯誤信息。
要實現連接到遠程資料庫,先了解一下相關知識吧,查了一下書。原來,
Net Configuration Assitant
的工具,應該就是它了。啟動之:
Net Configuration Assitant共提供了4個配置功能:
監聽程序配置,
命名方法配置,
本地網路服務名配置
目錄使用配置。
要從遠程位置連接Oracle資料庫,必須配置Oracle網路監聽程序。
Net Configuration Assitant
可以用於此項配置工作,啟動後選擇監聽程序配置,一路下一步即可。
之後點開命名方法配置,系統已經默認提供了三種,其他兩種也不太認識,乾脆不改了,直接點後退,回到主菜單。
主菜單中,第三項是本地網路服務名配置。要通過網路訪問Oracle資料庫或其他服務,要使用網路服務名,該項配置允許使用由本地命名解析的網路服務名。而第四項為目錄使用配置,點開一看,居然要選擇目錄伺服器,我這一共就兩台電腦,要什麼目錄服務,看來第四項不適合本實驗了,顯然,關鍵配置就在第三項:本地網路服務名配置。
將其點開,選擇添加網路服務名操作,然後會詢問你希望訪問何種版本的Oracle資料庫服務。
按照常理,我裝的是Oracle9i自然應該選擇第一個(Oracle8i或更高版本資料庫服務),可經過實踐證明,只有選擇第二個(Oracle8i發行版8.0資料庫或服務)才能正常實現遠程連接,不明其中原因,也就只有選第二個拉。
然後輸入我的資料庫實例SID:xy然後選擇網路協議,雙機互聯應該選擇TCP吧,再然後填寫資料庫所在的主機名:kxyhome
。埠號採用默認的1521。
點擊下一步,進行資料庫連接的測試,測試成功後進行網路服務名的填寫,這個名字就應該是sqlplus連接時候用的服務名了,這里我們使用:xyhome之後一切配置完成,來到命行,使用sqlplus進行連接:sqlplus kxy01/kxy01@xyhome成功啦!
⑷ linux通過odbc連接ms資料庫
function preorder($root)
configure:3438: $? = 0
configure:3427: gcc -v >&5
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages
⑸ 為什麼在Linux下寫c++的odbc的時候,會提示找不到odbc的方法
是在編譯/鏈接階段報的錯吧,需要包含odbc頭文件或者鏈接odbc庫。
具體方法:
1. 如果是編譯時出錯,請加上編譯選項: -I${ODBC_INC}
2. 如果是鏈接時出錯,請加上鏈接選項:-L${ODBC_LIB} -lldbc
上面的ODBC_INC、ODBC_LIB需要事先定義,與編譯環境保持一致即可。
⑹ 如何在linux下通過ODBC連接SQL SERVER資料庫
解壓文件 tar xvf odbc-sqlserver-1.4.27-linux-x86-glibc.tar
# cd odbc-sqlserver-1.4.27-linux-x86-glibc
# ls
all.tar dsn_template_ssl install_intro licenses_template unixodbc.tar.md5sum
all.tar.md5sum echo install_license license.txt unixodbc.tar.sum
all.tar.sum essqlservertarerr install_linkpaths licshell unixODBC_version.txt
check_root.txt ident install_other_procts OSname.txt uodbc
cmpver install install_paths sqlserver_create_dsn.sh uodbcinstall.txt
config.log install_check_linux INSTALL.txt SQLSERVER_uodbcinstall.txt uodbc_tmp
drv_template install_check_procts install_versioned tables_22189.sql versioned
drv_template_2236 install_check_root intro.txt tee
drv_template_ssl install_check_sunos licclient testlib
dsn_22189 install_check_tools license_request.txt unixODBC
dsn_template install_init licenses.out unixodbc.tar
執行install文件安裝ODBC驅動.(用root用戶執行)
#./install
這個集合了很多操作.每步都會彈出提示讓你進入下一步.
第一步提示Press the return key to read license,按回車即可.
接下來會刷很多license信息.Do you accept the license? (q=quit, yes, no):
如果接受,輸入yes.
然後會執行一些檢查命令,查看系統是否有基本一些命令工具的安裝.按回車進入下一步.
緊接著會檢查一些的包是否安裝.按回車進入下一步.
此時會提示安裝unixODBC需要依賴ODBC driver manager.按RETURN進入下一步.
然後會讓你輸入一些個人信息.不想輸的可以直接回車跳過.
接下來會有一步讓選擇licence.會有三個OPTION.
[0] Exit
[1] View existing licenses
[2] SQLServer ODBC Driver V1.2
Please choose the proct you would like a license for by entering its item number or enter one of the other options.
可以選擇2,但是選擇之後發現這個license是收費的..如果想出錢的話就去買.我是直接quit了的.進入下一步.
按要求一步步輸入IP地址,埠,用戶名,密碼,實例.它會自動測試你提供的東西是否正確.當有足夠信息去連接資料庫後,會提示輸入一個DSN名字.即為你的資料庫起一個名字,方便後邊登陸的時候使用.
這一步完成後,配置基本完成了.
別高興的太早,還要配置一個環境變數.
將LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib export LD_LIBRARY_PATH寫入到用戶profile文件中.注意路徑要正確.
現在就可以驗證啦.
#cd /usr/local/easysoft/unixODBC/bin
#./isql -v dsn_name
可以連接就OK啦.
⑺ 如何在linux下用R語言通過odbc訪問oracle
一、下載安裝包
http //www unixodbc.org/
下載文件:unixODBC-2.3.4.tar.gz
Oracle ODBC Driver
http //www oracle.com/technetwork/topics/linuxx86-64soft-092277.html
(根據系統需求進oracle官網下載相應版本)
下載文件:
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-odbc-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
二、 安裝
1、 安裝unixODBC
以root的身份運行:
tar –zxvf unixODBC-2.3.4.tar.gz
cd unixODBC-2.3.4
./configure --prefix=/usr/local/unixODBC-2.3.4 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc
make
make install
安裝成功後,unixODBC所需的頭文件都被安裝到了/usr/inlucde下,編譯好的庫文件安裝到了/usr/lib下,與unixODBC相關的可執行文件安裝到了/usr/bin下,配置文件放到了/etc下。
2、 安裝資料庫ODBC驅動
在ubuntu下用alien,在centos下用rpm安裝oracle的四個包。
進入oracle的安裝目錄(/usr/lib/x64/oracle/)
chmod 775 odbc_update_ini.sh
./odbc_update_ini.sh /etc(沒有提示表示安裝成功)
其中,odbc_update_ini.sh參數說明:
參數1:unixODBC安裝路徑。
參數2:驅動安裝的絕對路徑(可選)。
默認為運行腳本的路徑。
參數3:驅動名(可選),默認為Oracle 11g ODBC driver。
參數4:數據源名稱(可選)。
運行完成後將添加一個DNS條目到$HOME/.odbc.ini ,/etc/odbcinst.ini,名稱為:OracleODBC-11g
三、 設置環境變數
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x64/oracle/instantclient_11_2:/usr/local/lib
PATH=$PATH:/usr/local/bin
TNS_ADMIN(如果安裝有oracle軟體那麼對應的就是$ORACLE_HOME/network/admin/目錄,如果沒有安裝相應oracle軟體,需要指定tnsnames.ora所在的目錄,可選)
NLS_LANG(設定合適的字元集,可選)
LANG(系統字元編碼,可選)
/etc/profile (注意前面的英文句號,點號後面有空格) 將環境變數注冊.
一般來說,在centos裡面你可以通過在/etc/ld.so.conf.d/目錄下建一個新文件來實現
文件的名字是xxxx.conf,比如oracleinstantclient.conf
裡面的內容就是目錄:比如/usr/local/lib,可參考其他文件
建好後,運行ldconfig,就可以把ld新配置裝載進系統了
四、 配置本地服務名(tnsnames.ora)
按環境變數中TNS_ADMIN的設置目錄,添加本地服務名:$TNS_ADMIN/tnsnames.ora或$ORACLE_HOME/network/admin/tnsnames.ora
例如:TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) )
註:此處HOST為所連接的ip地址,PORT為埠號
五、 檢查驅動配置
vi /etc/odbcinst.ini 在其中添加oracle驅動,如
[Oracle 11g ODBC driver]
Description = Oracle ODBC driver for Oracle 11g
Driver = /root/instantclient_11_2/libsqora.so.10.1
Setup =File
Usage =
CPTimeout =
CPReuse =
六、 添加oracle odbc配置(oracle用戶)
vi ~/.odbc.ini
[OracleODBC-10g]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle 11g ODBC driver #對應/usr/local/etc/odbcinst.ini中的驅動配置名稱
DSN = OracleODBC-11g
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MetadataId
Default = F
QueryTimeout = T
ResultSets = T
ServerName =TEST #對應tnsnames.ora中配置的本地服務名SQLGetData extensions = F
Translation DLL =
Translation ption = 0
DisableRULEHint = T
UserID =
七、 測試
用命令:isql<數據源名稱> <用戶名> <密碼> -v
[root@dwj~]$ isql OracleODBC-11g system oracle -v+---------------------------------------+|Connected! || ||sql-statement || help[tablename] ||quit || |+---------------------------------------+
⑻ 定義odbc方式訪問資料庫,windows和linux下應如何配置怎麼驗證配置是否生效
Windows叔我就不吱歪了,不會多丟人,下面說說Unix和Linux下怎麼配置ODBC連接。
下載unixODBC,MySQL-connector-odbc