1 下載文件msodbcsql-11.0.2270.0.tar.gz和unixODBC-2.3.0.tar.gz 其中msodbcsql-11.0.2270.0.tar.gz是微軟的Microsoft? ODBC Driver 11 for SQL Server? - RedHat Linux
這個(gè)版本,在微軟網(wǎng)站就可以下載.而unixODBC-2.3.0.tar.gz是比較好下載的,注意的是不通使用unixODBC-2.3.1.tar.gz版本.把這兩個(gè)文件都傳到服務(wù)器上去.
2 在服務(wù)器上用命令解壓這個(gè)文件
tar xvzf msodbcsql-11.0.2270.0.tar.gz
3 進(jìn)入目錄msodbcsql-11.0.2270.0,然后修改build_dm.sh,把其中的#!/bin/sh修改為#!/bin/bash然后保存.然后再把文件unixODBC-2.3.0.tar.gz放到目錄msodbcsql-11.0.2270.0下
4 然后執(zhí)行如下命令:
./build_dm.sh --download-url=file://unixODBC-2.3.0.tar.gz
然后出現(xiàn)了如下信息:
Enter 'YES' to have this script continue: YES
Verifying processor and operating system ................................... OK
Verifying wget is installed ................................................ OK
Verifying tar is installed ................................................. OK
Verifying make is installed ............................................ FAILED
Downloading unixODBC 2.3.0 DriverManager ........................ NOT ATTEMPTED
Unpacking unixODBC 2.3.0 DriverManager .......................... NOT ATTEMPTED
Configuring unixODBC 2.3.0 DriverManager ........................ NOT ATTEMPTED
Building unixODBC 2.3.0 DriverManager ........................... NOT ATTEMPTED
Errors occurred. See the /tmp/unixODBC.13857.16035.16434/build_dm.log file for more details.
說明沒有安裝make,那么我們需要安裝make,如下命令:
sudo apt-get install make
然后再執(zhí)行
./build_dm.sh --download-url=file://unixODBC-2.3.0.tar.gz
又出現(xiàn)了以下信息:
Enter 'YES' to have this script continue: YES
Verifying processor and operating system ................................... OK
Verifying wget is installed ................................................ OK
Verifying tar is installed ................................................. OK
Verifying make is installed ................................................ OK
Downloading unixODBC 2.3.0 DriverManager ................................... OK
Unpacking unixODBC 2.3.0 DriverManager ..................................... OK
Configuring unixODBC 2.3.0 DriverManager ............................... FAILED
Building unixODBC 2.3.0 DriverManager ........................... NOT ATTEMPTED
Errors occurred. See the /tmp/unixODBC.18982.10186.27291/build_dm.log file for more details.
我們
cat /tmp/unixODBC.18982.10186.27291/build_dm.log
以后發(fā)現(xiàn)如下:
hecking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/unixODBC.18982.10186.27291/unixODBC-2.3.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
說明沒有安裝編譯需要的東西,那么裝吧,可以使用這些信息(根據(jù)自己的需要裝就可以了):
sudo apt-get install g++
sudo apt-get install build-essential
安裝完畢后,再執(zhí)行
./build_dm.sh --download-url=file://unixODBC-2.3.0.tar.gz
等一小會(huì)兒,就會(huì)出現(xiàn)如下:
Enter 'YES' to have this script continue: YES
Verifying processor and operating system ................................... OK
Verifying wget is installed ................................................ OK
Verifying tar is installed ................................................. OK
Verifying make is installed ................................................ OK
Downloading unixODBC 2.3.0 DriverManager ................................... OK
Unpacking unixODBC 2.3.0 DriverManager ..................................... OK
Configuring unixODBC 2.3.0 DriverManager ................................... OK
Building unixODBC 2.3.0 DriverManager ...................................... OK
Build of the unixODBC 2.3.0 DriverManager complete.
Run the command 'cd /tmp/unixODBC.24387.18479.8923/unixODBC-2.3.0; make install' to install the driver manager.
按照說明,進(jìn)入目錄,開始安裝unixODBC,使用如下命令進(jìn)入目錄
cd /tmp/unixODBC.24387.18479.8923/unixODBC-2.3.0
然后就執(zhí)行如下進(jìn)入安裝:
sudo ./configure
sudo make
sudo make install
這樣unixODBC就安裝完畢了.
5 以上就是安裝完畢了unixODBC,如果要知道配置文件的位置,使用以下命令:
odbc_config --odbcinstini
我電腦上顯示的位置如下:
/usr/local/etc/odbcinst.ini
這個(gè)時(shí)候我看了一下/usr/local/etc/odbcinst.ini,發(fā)現(xiàn)里面是空的,這就對(duì)了.注意,我這里引用的別人的說法,
8 unixODBC安裝好了以后,就開始安裝msodbcsql,進(jìn)入一開始的msodbcsql-11.0.2270目錄,然后執(zhí)行如下命令
ldd lib64/libmsodbcsql-11.0.so.2270.0 | grep not
一般這個(gè)時(shí)候會(huì)出現(xiàn)如下信息:
libcrypto.so.10 => not found
libssl.so.10 => not found
libodbcinst.so.1 => not found
說明有這三個(gè)庫找不到,我現(xiàn)在開始解決這個(gè)問題.
首先看一下這個(gè)庫libcrypto在那里,使用如下命令
locate libcrypto
我電腦的輸出如下:
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
/usr/lib/x86_64-linux-gnu/libcrypto.a
/usr/lib/x86_64-linux-gnu/libcrypto.so
/usr/lib/x86_64-linux-gnu/pkgconfig/libcrypto.pc
說明我們機(jī)器上沒有l(wèi)ibcrypto.so.10,但是我們有l(wèi)ibcrypto.so.1.0.0,那么我們做個(gè)鏈接不就完了.不過我們先裝一下SSL
sudo apt-get install libssl-dev
然后進(jìn)入目錄/lib/x86_64-linux-gnu,然后執(zhí)行如下:
sudo ln -s libssl.so.1.0.0 libssl.so.10?
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
然后再進(jìn)入目錄msodbcsql-11.0.2270 再執(zhí)行
ldd lib64/libmsodbcsql-11.0.so.2270.0 | grep not
發(fā)現(xiàn)沒有任何輸入,那么以下的動(dòng)態(tài)庫
libodbcinst.so.1 => not found
怎么也解決了?我也沒有搞清楚.有空再看一下.目前,這個(gè)動(dòng)態(tài)庫是可以用了.
9 修改msodbcsql-11.0.2270目錄下的文件install.sh,把其中的#!/bin/sh修改為#!/bin/bash然后保存.然后執(zhí)行如下:
sudo ./install.sh install --force
然后我們?cè)倏匆幌?usr/local/etc/odbcinst.ini 里面的內(nèi)容:
[ODBC Driver 11 for SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1
就從原來的空白,變成有如下內(nèi)容了.為了能夠查看每次連接的故障,我們可以在內(nèi)容里加這個(gè):
[ODBC Driver 11 for SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1
[ODBC]
Trace = Yes
TraceFile = /tmp/odbc.log
以后有問題,我們可以查看odbc.log來定位.
10 測(cè)試一下,是不是能夠連接到服務(wù)器
sqlcmd -U username -S ip,port
其中username是數(shù)據(jù)庫的用戶名,ip,port是數(shù)據(jù)庫服務(wù)器的地址.應(yīng)該沒有問題了,有問題mail我QQ:26696815
注意,以下是我引用的別人的信息:
寫配置文件,建立自己的數(shù)據(jù)源unixODBC的配置文件主要是usr/local/etc/odbcinst.ini以及usr/local/etc/odbc.ini。前者用于配置驅(qū)動(dòng)程序,后者用于保存系統(tǒng)DSN。
如果安裝完畢發(fā)現(xiàn)編譯的時(shí)候沒有找到sql.h,則需要安裝
sudo apt-get install unixodbc-dev
————————————————
版權(quán)聲明:本文為CSDN博主「Code_My_Life」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Code_My_Life/article/details/46609947