您好,登錄后才能下訂單哦!
安裝unixodbc——以下操作在root用戶下操作
安裝過程和報錯處理我是參考及引用網絡上的資源,也結合了自己的實際安裝環境
一、安裝unixodbc工具
1、下載unixodbc壓縮包(unixODBC-2.3.4.tar.gz),用ssh工具將其上傳linux服務器。(下載地址:http://www.unixodbc.org/)
2、輸入以下命令,進行安裝:
#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——對unixODBC-2.3.4軟件進行配置
#make——對unixODBC-2.3.4進行編譯
#make install——安裝unixODBC-2.3.4
ps:在Linux下安裝一個應用程序時,一般先運行腳本configure,然后用make來編譯源程序,在運行make install,最后運行make clean刪除一些臨時文件(沒做過最后一步)。
二、安裝oracle數據庫的odbc驅動
1、下載、上傳并安裝以下兩同版本號的rpm軟件包
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm
下載地址: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
#rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm ——安裝操作
#rpm -ivh oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm——安裝操作
ps:下載32位或63位的rpm包,由linux系統來決定,用uname -a,可查看當前系統的型號
2、將/usr/lib/oracle/11.2/client/lib/* 拷貝到/usr/lib/目錄下——將oracle下動態連接共享庫拷貝到linux系統默認路徑下
3、執行ldconfig——將linux系統新增的oracle動態連接共享庫進行加載
4、在/usr/lib/oracle/11.2/NETwork/admin/ 下創建文件tnsnames.ora ,如下:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.162.35.137)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
其中ORCL為一個標識名,配置文件odbc.ini中的ServerName項要與之相對應,SERVICE_NAME后跟要訪問的數據庫名,HOST為數據庫所在主機IP地址,PORT為端口號。
ps:若之前已經有tnsnames.ora文件,注意看下配置細節即可。
5、在/etc/profile中增加: export TNS_ADMIN=/usr/lib/oracle/11.2/network/admin/——配置新增的環境變量信息
6、執行 . /etc/profile (注意前面的英文句號,點號后面有空格) 將環境變量注冊
三、文件配置
主要是修改 /etc/ 下的兩個配置文件 odbc.ini 及 odbcinst.ini 。
1、在/etc/odbcinst.ini 中對各數據庫的驅動進行配置,一般格式如
[oraclezy]
Description = odbc for Oracle——描述
Driver = /usr/lib/libsqora.so.11.1——驅動程序
Setup = /usr/lib/liboraodbcS.so——設置
FileUsage = 1
[ODBC]
Trace=1——追蹤
Debug=1——調試
Pooling=No
ps:上述配置中的 Driver 及 Setup 后跟的字段,可能由于版本不同,配置會略有不同,要以本機上的庫名或驅動名為準,可先用 ls 命令查看一下。
2、在 /etc/odbc.ini 中對應用程序要調用的ODBC接口進行配置,格式如下:
[oracle]
#odbcinst.ini中對應中括號中的名字
driver = oraclezy
server = 192.168.1.167 or localhost
port = 1521
#tns的名字
ServerName = ORCL
UserID = root
password = 123456(以安裝oracle數據庫時注冊的用戶為主)
四、測試連接
完成以上操作后,執行iqsl oracle(以在odbc.ini的數據源名為主) root(用戶) 123456(密碼) -v
即:isql oracle root 123456 -v
出現此界面,即安裝配置成功:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
五、odbc連接oracle數據庫報錯類型
1、ORA-12170:TNS:Connect timeout occurred:連接超時,注意/etc/odbc.ini 配置文件中servername與tnsnames.ora是否一致
ps:我在安裝時,就只遇到一個報錯:
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/10.2.0.4/client
/libsqora.so.10.1' : file not found
[ISQL]ERROR: Could not SQLConnect
處理方法:
原因是libsqora.so.11.1依賴的包沒有
參考鏈接:http://bbs.csdn.net/topics/390566189
1、使用如下命令查看依賴關系
# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
linux-vdso.so.1 => (0x00007fff99b1d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbcb52f1000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbcb506c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbcb4e4f000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbcb4c36000)
libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007fbcb22c6000)
libodbcinst.so.1 => not found (0x00007fbcb20b5000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbcb1d23000)
/lib64/ld-linux-x86-64.so.2 (0x000000393aa00000)
libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007fbcb1955000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007fbcb1754000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fbcb154b000)
2、使用如下命令查找libodbcinst.so.1的位置
#find / -name libodbcinst*
/usr/lib64/libodbcinst.so
/usr/lib64/libodbcinst.so.2
/usr/lib64/libodbcinst.so.2.0.0
/usr/lib/libodbcinst.so
/usr/lib/libodbcinst.so.2
/usr/lib/libodbcinst.so.2.0.0
確實沒有libodbcinst.so.1
3、解決該問題是實際操作
將/usr/lib64/libodbcinst.so.2、/usr/lib/libodbcinst.so.2分別復制
#cp /usr/lib/libodbcinst.so.2 /usr/lib/libodbcinst.so.1
#cp /usr/lib64/libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
重新運行驗證命令即可
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。