Catatan: Saya jelas telah mengubah nama server dan IP menjadi yang fiktif.
Inilah yang sedang terjadi. Saya punya server, yang saya panggil MYSERVER
, menjalankan Microsoft SQL Server Express 2005. Tepat di server ini sendiri, saya punya koneksi ODBC yang diatur dengan menunjuk ke dirinya sendiri, dan itu sudah berfungsi dengan baik. Saya masuk menggunakan Otentikasi SQL Server (bukan otentikasi Windows), dan sudah diatur seperti ini:
Seperti yang saya katakan, itu berhasil. Tapi selanjutnya, saya punya komputer lain yang berada di domain yang sama sekali berbeda / tidak di intranet, yang perlu mengakses SQL Server yang sama ini di-host di MYSERVER. Karena berada di domain yang berbeda, itu tidak mengenali nama "MYSERVER"; Saya harus mengarahkannya ke alamat IP MYSERVER, yang akan kami katakan adalah 123.456.789.012. Tetapi koneksi ODBC tampaknya tidak berfungsi di sana. Saya mencoba mengaturnya seperti ini:
Ini tidak berfungsi. Ketika saya memasukkan nama pengguna dan kata sandi dan menekan Berikutnya, itu terhenti selama 10 hingga 20 detik, dan akhirnya kembali dengan kesalahan berikut:
Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
Jika saya mencoba hal yang sama, tetapi mengubah "server" dari yang 123.456.789.012\SQLEXPRESS
lama menjadi biasa saja 123.456.789.012
, saya mendapatkan kesalahan yang berbeda:
Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.
Sekarang saya tahu apa yang Anda pikirkan. Anda mungkin berpikir, "ya, Anda mungkin tidak membuka firewall untuk port 1433, dummy." Kecuali saya lakukan, dan saya memverifikasi ini, karena saya dapat berhasil menjalankan:
telnet 123.456.789.012 1433
... dari baris perintah yang saya inginkan. Jadi saya tidak yakin apa yang harus saya lakukan. Saya tahu SQL Server ada, berfungsi, dan koneksi ODBC dapat diatur dengan benar; Saya hanya tidak yakin apa yang saya miliki salah dalam pengaturan koneksi saya yang melempar kesalahan ini. Berdasarkan kesalahan terakhir yang saya sebutkan, akan terlihat bahwa ia dapat terhubung ke server, tetapi tidak dapat menemukan instance (karena saya tidak menentukan satu waktu itu). Jadi apakah itu berarti saya hanya perlu menggunakan beberapa sintaks yang berbeda untuk menentukan IP bersama dengan nama instance? Apa yang saya lakukan? Terima kasih sebelumnya.
sumber
Apakah Anda mengaktifkan layanan Browser SQL Server sebagai per Cara mengkonfigurasi SQL Server 2005 untuk memungkinkan koneksi remote ?:
sumber
Utas ini memperbaiki pesan kesalahan yang sama untuk saya ketika menggunakan Access untuk menyambung ke server MSSQL 2008. MSSQL 2005 dan sebelumnya berfungsi dengan baik hanya menggunakan nama komputer di string koneksi, tapi saya harus mengubah ke string koneksi di Access ke bentuk lengkap ketika instance ditingkatkan ke 2008:
servername\instancename,portnumber
sumber
Saya memiliki masalah yang sama dan berhasil menyelesaikannya dengan mengubah driver SQL ke driver SQL Native Client juga. Ini aneh karena dalam kasus saya ini telah bekerja dengan baik selama bertahun-tahun dan kemudian berhenti bekerja. Saya menduga ini adalah sesuatu di sepanjang garis pengemudi yang korup, mungkin menginstal ulang MDAC mungkin membantu, tetapi untuk saat ini saya senang bahwa itu berfungsi sama sekali!
sumber
Apakah itu akan mengenali nama server jika sudah memenuhi syarat? Jika itu MYSERVER.domain.com? Kami harus melakukannya dengan SQL Server saat menghubungkan dari domain yang berbeda. Jika Anda bisa mendapatkan DSN Sistem ODBC untuk terhubung saat Anda menguji sumber data, Anda membuat kemajuan. Jika tidak terhubung dalam pengaturan ODBC, Anda harus memperbaikinya terlebih dahulu.
sumber
MYSERVER.domain.com\SQLEXPRESS
danMYSERVER.domain.com
, tetapi keduanya memberi saya kesalahan yang sama yang saya sebutkan di atas, masing-masing.Apakah Anda menggunakan pipa bernama atau TCP pada koneksi ODBC yang berfungsi? Apakah TCP diaktifkan?
sumber
Pastikan Anda memiliki koneksi tcp jarak jauh yang diaktifkan untuk server SQL.
sumber
Hanya tembakan liar di sini, tetapi apa yang terjadi jika Anda meletakkan backslash ganda sebelum nama server atau alamat IP? Sepertinya saya bahwa itu biasanya diperlukan untuk sebagian besar koneksi Windows / Microsoft lainnya.
sumber
Saya punya masalah serupa. Dalam kasus saya sw lain mengkonfigurasi pengaturan ODBC jadi saya tidak dapat mengubah driver. Saya memecahkan kasus saya seperti ini:
Kemudian mulai bekerja. OS Klien: Win7 x64 Driver: sqlsrv32.dll
sumber
Untuk apa nilainya, saya mulai mendapatkan kesalahan ini pada koneksi yang sebelumnya berfungsi. Ternyata layanan MSSQL $ SQLEXPRESS telah terhenti. Restart itu memperbaiki masalah.
sumber
Saya memiliki masalah ini juga, dan sesederhana ini: server yang terdaftar sebagai server DNS utama untuk server ini telah dihapus, dan aplikasi tidak lagi dapat dengan benar menyelesaikan nama server SQL di jaringan. Semuanya segera mulai berfungsi lagi ketika saya memperbaiki server DNS lokal menjadi yang berfungsi.
sumber