Saya mencoba untuk terhubung ke database MS SQL menggunakan freetds dan unixodbc . Saya telah membaca berbagai panduan bagaimana melakukannya, tetapi tidak ada yang berfungsi dengan baik untuk saya. Ketika saya mencoba untuk terhubung ke database menggunakan alat isql , saya mendapatkan kesalahan berikut:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Adakah yang sudah berhasil membuat koneksi ke database MS SQL menggunakan freetds dan unixodbc di Ubuntu 12.04? Saya akan sangat menghargai bantuan.
Di bawah ini adalah prosedur yang saya gunakan untuk mengkonfigurasi freetds dan unixodbc . Terima kasih atas bantuan Anda sebelumnya!
Prosedur
Pertama, saya telah menginstal paket-paket berikut dengan:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
dan mengkonfigurasi freetds sebagai berikut:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Menggunakan alat tsql saya bisa berhasil terhubung ke database dengan mengeksekusi
tsql -S TS -U username -P password
Karena saya memerlukan koneksi odbc, saya mengkonfigurasi odbcinst.ini sebagai berikut:
--- /etc/odbcinst.ini ---
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout =
CPResuse =
client charset = utf-8
dan odbc.ini sebagai berikut:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Mencoba terhubung ke database menggunakan alat isql dengan konfigurasi seperti itu menghasilkan kesalahan berikut:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
tsql
:sudo apt-get install freetds-bin
Jawaban:
Terima kasih, kiriman Anda sangat berguna bagi saya. Saya bisa membuatnya bekerja dengan menghilangkan baris berikut dari file odbcinst.ini saya
jadi sekarang file odbcinst.ini saya terlihat seperti ini:
dan file odbc.ini saya terlihat seperti ini sekarang:
Setelah saya menyederhanakan semuanya, itu bekerja dengan baik. Saya masih tidak bisa membuatnya bekerja dengan RODBC tetapi bekerja dengan isql.
Saya tidak tahu apakah ini akan membantu tetapi posting Anda membantu saya. Terima kasih.
sumber
/etc/odbcinst.ini
Ini adalah contoh minimal tapi lengkap bagaimana menghubungkan ke Azure SQL Database dengan
isql
dari Ubuntu 14.04.1 LTS. Contoh diekstraksi dari Bagaimana Menghubungkan Database SQL Azure Dari Ubuntu (disclaimer: ini wiki pribadi saya).Instal paket yang diperlukan
Konfigurasikan FreeTDS
Mengajukan
/etc/freetds/freetds.conf
Tes koneksi
Pada titik ini, koneksi dengan
tsql
harus berfungsi:Perlu diperhatikan
@<HOST>
. Kalau tidak, koneksi berakhir dengan kesalahan:Konfigurasikan driver ODBC
Mengajukan
/etc/odbcinst.ini
Konfigurasikan sumber data ODBC
Mengajukan
/etc/odbc.ini
<SERVERNAME>
sama dengan difreetds.conf
.Terhubung dengan isql
Perlu diperhatikan
@<HOST>
. Kalau tidak, koneksi berakhir dengan kesalahan:sumber
@<HOST>
muncul tidak lagi diperlukan.Dalam kasus saya, masalahnya muncul karena indentasi sederhana dalam file konfigurasi saya. Jadi
/etc/odbc.ini
, saya menghapus semua indentasi dan voila!(
odbcinst.ini
berperilaku seperti anak normal dan sepertinya tidak membuat ulah.)sumber
Ubuntu sebelum 12.04 memiliki jalur odbc yang berbeda di file /etc/odbcinst.ini.
Jalur pengemudi lama adalah:
Saya mengubahnya menjadi:
Ini konfigurasi lengkapnya:
Bekerja seperti jimat sekarang! Terima kasih!
sumber