Saya tidak dapat terhubung ke database SQL server saya melalui Alamat IP

45

Saya telah menyiapkan server yang menjalankan Windows Server 2008, dan SQL Server 2008 Express diinstal.

Saya dapat terhubung ke database SQL Server Express mesin melalui MACHINENAME/SQLEXPRESS.

Namun ketika kami datang untuk menghubungkan melalui perangkat lunak atau skrip apa pun menggunakan Alamat IP, itu tidak akan memungkinkan koneksi.

Saya telah mencoba:

  • Mematikan Firewall.
  • Mengizinkan Koneksi Jarak Jauh untuk Database SQL.
  • Mengaktifkan TCP / IP dalam Konfigurasi SQL.

Ketika kami mencoba untuk terhubung melalui perangkat lunak 'SQL Server Management Studio', kami mendapatkan pesan berikut:

Pesan eror:

Terjadi kesalahan saat membuat koneksi ke server. Saat tersambung ke SQL Server 2005, kegagalan ini dapat disebabkan oleh kenyataan bahwa di bawah pengaturan default SQL Server tidak memungkinkan koneksi jarak jauh. (penyedia: Penyedia TCP, kesalahan: 0 - Tidak ada koneksi yang dapat dibuat karena mesin target secara aktif menolaknya.) (Microsoft SQL Server, Kesalahan: 10061)

Koneksi berhasil dibuat dengan server, tetapi kemudian terjadi kesalahan selama proses login. (penyedia: Penyedia TCP, kesalahan: 0 - Koneksi yang dibuat dibatalkan oleh perangkat lunak di mesin host Anda.) (Microsoft SQL Server, Kesalahan: 10053)

Bisakah Anda memberi tahu saya kapan Anda bebas sehingga kami dapat melihatnya karena saya sepertinya mengetahui di mana, Saya telah mengubah detail sesuai beberapa informasi yang dikirim oleh UK Fast kepada saya, tetapi mereka mengatakan, "Tidak ada dalam dukungan, kirim" , jadi mereka tidak bisa membantu lebih jauh.

Saya berharap mendengar kabar dari kamu.

Shaun Swales
sumber
Sudahkah Anda mencoba menambahkan nomor port saat menghubungkan?
Apakah Anda mencoba terhubung ke "192.168.0.1/SQLEXPRESS" (di mana 192.168.0.1 benar - benar alamat IP server Anda ), atau Anda menghilangkan nama instance?
Rowland Shaw
2
Apakah Anda benar-benar menggunakan garis miring /dan bukan garis miring `\`?
Aaron Bertrand

Jawaban:

78

Anda SQL Server diinstal sebagai bernama contoh, jadi pertama-tama mencoba menghubungkan ke server Anda menggunakan nama server berikut: IP Address\SQLEXPRESS.
Ketika Anda menginstal SQL Server seperti yang disebut instance, ia menggunakan port TCP / IP dinamis secara default, jadi tidak mungkin untuk terhubung ke sana tanpa menentukan nama instance (hanya alamat IP). Jika Anda perlu terhubung ke server Anda tanpa menggunakan nama instance Anda harus mengkonfigurasi ulang server Anda untuk menggunakan port TCP statis. Untuk melakukannya harap lakukan hal berikut:

  1. buka SQL Server Configuration Manager;
  2. beralih ke SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. klik dua kali TCP/IPprotokolnya;
  4. pilih Yesnilai di Enabledbidang;
  5. beralih ke IP Addressestab;
  6. temukan IPAllbagian;
  7. kosongkan TCP Dynamic Portsbidang di bagian itu;
  8. tentukan 1433nilai di TCP Portbidang:
    masukkan deskripsi gambar di sini
  9. restart server Anda
    Cobalah untuk terhubung ke server Anda hanya dengan menggunakan alamat IP-nya.
levitologista
sumber
7
Terima kasih telah memberikan informasi itu, berfungsi dengan baik kecuali untuk satu hal. Di studio manajemen sql saya masih harus menyediakan port untuk terhubung ke server, seperti, xxxx \ instance, 1433. Saya pikir itu agak aneh karena saya menggunakan port standar.
Tomas Jansson
1
Ini bekerja untuk saya, kecuali untuk kebalikan dari apa yang dilaporkan @ ThomasJansson: ia bekerja di Management Studio tanpa nomor port, tetapi saya harus menentukan satu di string koneksi saya walaupun saya menggunakan port default (1433).
lpacheco
Saya menambahkan jawaban yang sangat baik di atas, di SQL Server 2017, saya menyadari bahwa Anda tidak dapat membiarkan bidang kata sandi pengguna (terutama sa) kosong. Pastikan Anda memiliki pengaturan kata sandi - jika tidak maka tidak akan terhubung.
aLearner
GUNAKAN netstat -a -b dan temukan sqlservr.exe dan yakinlah bahwa portnya adalah 1433. Tidak selalu demikian. Anda akan menjadi gila sebaliknya.
jwize
8

Anda harus mengaktifkan, mengikuti bagi saya masalah yang dipecahkan dengan mengaktifkan mengikuti dan memulai kembali semua layanan.

  • Berbagi memori
  • TCP / IP
  • Pipa Bernama

Konfigurasi SQL Server Bernama Pipa

Baljeetsingh
sumber
8

Menggunakan SQL Server Express 2017, selain jawaban di atas, ketika mencoba menghubungkan menggunakan port, pastikan Anda menggunakan sintaks koma , bukan sintaks kolon yaitu:

 MyServerName,1433\InstanceName

Setelah bergulat dengan hal di atas selama beberapa jam, mengikuti semua saran, dan masih belum terhubung, saya menggunakan yang di atas sebagai gantinya, dan itu terhubung langsung melalui SQL Server Management Studio dari jarak jauh. Langkah pertama menuju sukses.

Brad
sumber
1
Ini memperbaikinya bagi saya (memindahkan port antara nama server dan nama instance). Memasuki port pada akhirnya tidak berhasil.
masospaghetti
1

Saya dapat terhubung dari jarak jauh dengan secara eksplisit menentukan nomor port dinamis, namun ini jelas tidak ideal.

Saya muncul masalahnya adalah bahwa layanan SQL Server Browser dinonaktifkan. Setelah saya mengaktifkan dan memulai layanan ini, saya dapat terhubung dari jarak jauh hanya dengan menentukan nama host dan nama instance.

RobSiklos
sumber
0

Hanya menambahkan apa yang telah dikatakan sebelumnya. Saya memiliki masalah yang sama yaitu tidak dapat terhubung ke server (klien dan server pada desktop yang sama) dan saya menjalankan semua langkah yang tercantum di sini mencoba memperbaikinya. Namun, saya akhirnya tahu apa masalahnya. Yang harus saya lakukan adalah masuk ke studio manajemen server SQL dan klik "layanan server SQL" dan kemudian klik satu server yang saya butuhkan untuk terhubung. Kemudian klik tombol hijau 'jalankan'. Saya tidak yakin apakah ini khusus untuk saya karena komputer saya sedang berjalan dan mengakses server, semoga membantu orang lain di luar sana!

Di mana tombol run / start berada

Kuolema
sumber
1
bagaimana mungkin komentar ini diremehkan? sederhana dan memperbaiki masalah saya
Cavid Hummatov