Pertanyaan Koneksi MSSQL dari Ubuntu


Saya memerlukan tutorial yang mudah dan lengkap untuk membuat koneksi MSSQL dari Ubuntu.

Saya pikir saya menginstal FreeTDS dan UnixODBC tetapi konfigurasi sangat rumit saya tidak mengerti masalah ini.

Saya mengikuti tutorial ini: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

Tapi saya gagal.

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

Edit:

Sebelum pengeditan ini "/etc/odbcinst.ini" dan "/etc/odbc.ini" kosong.

Saya menambahkan baris ini ke /etc/odbcinst.ini:

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

Saya menambahkan baris-baris ini ke /etc/odbc.ini:

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

Saya tidak membuat perubahan pada "/etc/freetds/freetds.conf" sejak awal.

Namun, tidak ada yang berubah.


10
2018-01-28 18:16


asal


sudahkah Anda membuat entri pada file ODBC (/etc/odbc.ini)? dan juga periksa drive di file "/etc/odbcinst.ini" - vembutech
Kedua file ini kosong, apa yang harus saya lakukan sebenarnya? Bisakah Anda berbagi tautan atau beberapa detail? - mertyildiran
Saya yakin Anda telah melewatkan langkah "Konfigurasikan UnixODBC" yang tersedia di tautan yang Anda ikuti. Mohon perbarui kedua file seperti di URL: github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/… dan periksa apakah masalah teratasi. - vembutech
Tidak ada yang berubah. Saya mengedit pertanyaan yang dapat Anda lihat di atas - mertyildiran


Jawaban:


Berikut adalah petunjuk langkah demi langkah (ditemukan di sini):

Pertama, instal unixODBC:

sudo apt-get install unixodbc unixodbc-dev

Saya juga menginstal paket-paket berikut ini (mungkin diperlukan):

sudo apt-get install tdsodbc php5-odbc

Kemudian unduh, untar, kompilasi, dan pasang FreeTDS (peringatan, URL dapat berubah):

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

Mencoba koneksi melalui Telnet ke contoh SQL Server Anda:

telnet 192.168.0.1 1433

Gunakan alat tsql untuk menguji koneksi:

tsql -S 192.168.0.1 -U devuser

Ini akan meminta Anda untuk memasukkan kata sandi, setelah itu Anda dapat berharap terhadap harapan untuk melihat tanda yang indah ini:

1>

Jika itu berhasil, saya sarankan melemparkan pesta (coding). Selanjutnya adalah beberapa konfigurasi. Buka file konfigurasi FreeTDS. /usr/local/etc/freetds.conf

Tambahkan entri berikut ke bagian bawah file. Kami menyiapkan nama sumber data (DSN) yang disebut 'MSSQL'.

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

Sekarang buka file konfigurasi ODBC: /usr/local/etc/odbcinst.ini

Dan tambahkan entri driver MSSQL berikut (FreeTDS) di bagian akhir:

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Kemudian, akhirnya, siapkan DSN dalam ODBC di file odbc.ini di sini /usr/local/etc/odbc.ini Dengan menambahkan bit ini ke file:

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

Uji koneksi menggunakan alat isql:

isql -v MSSQL devuser 'devpass'

Jika Anda melihat "Tersambung!" Anda emas, selamat! Jika tidak, saya benar-benar minta maaf; lihat di bawah ini di mana ada beberapa sumber daya yang mungkin bisa membantu.

Sekarang restart Apache dan uji dari PHP menggunakan 'MSSQL' sebagai DSN. Jika sesuatu tidak berfungsi, Anda dapat mencoba memasang salah satu atau semua paket ini: mdbtools libmdbodbc libmdbtools mdbtools-gmdb


10
2018-01-28 19:41



setelah "tsql -S 192.168.0.1 -U devuser": Koneksi ditutup oleh host asing. Apa yang harus saya lakukan? - mertyildiran
menggunakan ip lokal Anda - Trevor Clarke
Saya menggunakan "tsql-77.223.141.204 -U bacon" alamat IP server MSSQL - mertyildiran
bukankah itu localhost? karena Anda tidak dapat terhubung ke ip eksternal Anda sendiri. - Trevor Clarke
Ya itu adalah IP eksternal tidak mungkin untuk mengakses melalui metode ini? Apa yang harus saya lakukan? - mertyildiran


Di Trusty 14.04 saya mengalami masalah http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

Ketika saya mencoba menjalankan tsql perintah, saya menemukan tsql dapat diinstal melalui apt:

$ sudo apt-get install freetds-bin

4
2017-08-24 19:35





Semoga Anda telah menyalin konten di tautan ke file. Anda perlu memperbarui rincian server SQL Anda di file "/etc/odbc.ini". Anda dapat merujuk tautan http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/


0
2018-01-28 19:35



setelah "tsql -S 192.168.0.1 -U devuser": Koneksi ditutup oleh host asing. Apa yang harus saya lakukan? - mertyildiran
Dapatkah Anda memeriksa apakah port 1433 terbuka di server MSSQL. Anda harus memastikan Anda dapat mengakses port 1433 dari server MSSQL Anda. Jika tidak terbuka silakan buka port dan kemudian periksa - vembutech


Saya harus melakukan ini untuk Ubuntu 14.04 dan 17.04, keduanya LTS 64-bit. Mungkin berfungsi untuk versi yang lebih baru.

Instal unixodbc (koneksi ODBC), freetds (koneksi SQL Server) dan tdsodbc (jembatan antara dua yang sebelumnya)

sudo apt install unixodbc freetds-bin tdsodbc

Tambahkan driver ODBC Anda ke /etc/odbcinst.ini (harus kosong)

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Tambahkan DSN Anda ke /etc/odbc.ini (seharusnya juga kosong)

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

Dan hanya itu saja.


0
2018-05-18 21:40



libtdsodbc.so dan libtdsS.so juga dapat ditemukan di / usr / lib / x86_64-linux-gnu / odbc / - Strixy


Untuk menjawab pertanyaan yang tersirat oleh:

Saya memerlukan tutorial yang mudah dan lengkap untuk membuat koneksi MSSQL dari Ubuntu

... dan mengabaikan semua hal pengaturan FreeTDS.

Menggunakan mssql-cli (memasang, pemakaian).


0
2017-07-07 13:03





Saya bekerja di perusahaan yang sangat menggunakan produk Microsoft. Namun, saya lebih suka bekerja pada mesin Linux (Ubuntu). Secara khusus, saya gunakan Ubuntu 16.04 LTS.

Saya menggunakan JetBrains ' DataGrip atau Elektron SQL sebagai SQL GUI. DataGrip akan membutuhkan Driver Microsoft JDBC untuk SQL Server  yang perlu Anda tunjuk secara manual saat Anda membuka DataGrip untuk pertama kalinya. Saya memasukkan ini /usr/share/java/, tetapi di mana saja akan bekerja.

Menghubungkan sederhana di laptop Windows 10 saya. Saya cukup membuka SQL Server Management Studio, dan menggunakan kredensial saya untuk masuk (username + password); Saya tidak menggunakan Windows Authentication.

Prasyarat

Agar terhubung dari Ubuntu, itu sedikit (sedikit saja) kerja tambahan. Pertama, pada mesin Windows 10 saya, saya membuka terminal Powershell, dan ketik yang berikut ini

nslookup <server name here>

dan itu mengembalikan sesuatu seperti

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

Nama dan alamat server akan statis, jadi hal di atas hanya akan diperlukan untuk dijalankan satu kali per server yang Anda coba akses.

DataGrip

Kemudian, saya melompat ke mesin Linux saya dan membuka DataGrip. Untuk Host Saya mengetik <server's address>, Port: 1433 (ini adalah default untuk MS SQL Server). URL seharusnya terlihat seperti,

URL: jdbc:sqlserver://<server's address>:1433

Jika Anda mengklik Test Connection, akan meminta Anda untuk informasi login jika Anda belum menambahkannya. Dan itu untuk DataGrip!

DataGrip juga memiliki blog berikut, yang mungkin bermanfaat bagi pengguna baru: Menghubungkan DataGrip ke MS SQL Server

Elektron SQL

Jika Anda tidak ingin membeli DataGrip, Anda dapat menggunakan SQL Electron. Langkah-langkahnya serupa. Buka SQL Electron, klik tambah untuk menambahkan server baru, dan untuk Server Address ketik <server's address>, Port: 1433, dan akhirnya kredensial masuk Anda. Dan ITULAH ITU!


0
2017-07-12 21:33