Sepertinya saya tidak dapat terhubung ke database saya dari sebuah situs. Saya mendapatkan kesalahan ini:
Penyedia Pipa Bernama, galat: 40 - Tidak dapat membuka koneksi ke SQL Server
Saya mencoba menggunakan alamat IP lokal untuk menghubungkan dan juga alamat publik. Saya sudah mencoba:
- Ya, situs dapat berkomunikasi dengan server
- Pipa bernama / TCP diaktifkan.
- Koneksi jarak jauh diizinkan.
- Windows Firewall tidak aktif
- Membuat pengecualian untuk port 1433 di Windows Firewall.
- Mengaktifkan semua yang ada di SQL Server Configuration Manager.
Apa lagi yang bisa saya lakukan di sini?
Jawaban:
Memecahkan masalah ini sangat mudah:
Tangkapan layar langkah-langkah:
sumber
Dan solusi paling sederhana - periksa apakah tebasan Anda kembali ...
Saya menghabiskan sekitar satu jam untuk mencari tahu apa yang salah dengan SERVER / INSTANCENAME ketika semuanya dikonfigurasi dengan benar, bernama pipa, hak akses pengguna ... dan tiba-tiba saya tersadar, ini bukan garis miring, ini garis miring terbalik (
\
).Kengerian, rasa malu ...
sumber
Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatform
Saat dalam pengembangan (C #) saya menghubungkan ke server MSSQL 2017 yang diinstal secara lokal, tetapi ketika saya pergi untuk menyebarkannya, server jauh yang diinstal oleh vendor perangkat lunak berjalan sebagaiInstance
. Saya terus berpikir itu adalah masalah otentikasi karena itu berjalan sebagai layanan atau sesuatu sampai saya menemukan ini.Ini adalah proses tiga langkah setelah menginstal SQL Server:
Mulai ulang server SQL Config Manager -> Layanan SQL Server -> SQL Server (SQLEXPRESS) -> Klik kanan -> Mulai Ulang
Gunakan nama server dan instance yang benar (keduanya diperlukan!) Biasanya ini . \ SQLEXPRESS , misalnya lihat tangkapan layar dari dialog koneksi QueryExpress.
Itu dia.
sumber
Saya baru saja menginstal pengembang SQL SERVER 2012. Ketika saya membuat paket SSIS pertama saya, saya menerima kesalahan pipa ini ketika saya mencoba untuk membuat tugas koneksi data di SQL Server 2012 Alat Data di kotak Connection Manager. Saya memutuskan dengan bantuan pos di atas.
Jika memilih instance bernama dan Anda memanggil instance bernama SSQDatabase1 dan nama PC Anda adalah PCX1. Anda harus memasukkan PCX1 \ SSQDatabase1 bukan hanya SSQDatabase1 atau Anda akan menerima kesalahan pipa bernama.
sumber
Utas di MSDN Sosial, Re: Named Pipes Provider, error: 40 - Tidak dapat membuka koneksi ke SQL Server , memiliki daftar masalah yang cukup baik yang mungkin terkait dengan kesalahan Anda. Anda mungkin ingin melihat apakah ada di antara mereka yang Anda alami.
sumber
ip.ip.ip.ip/NamedInstance
?i Hanya diaktifkan TCP / IP, VIA, Named Pipes dalam Manajer Sql Server Configuration, Masalah saya mendapat diselesaikan merujuk ini untuk info lebih lanjut Menyelesaikan Named Pipes Kesalahan 40
sumber
Gunakan SERVER \\ INSTANCE NAME . Menggunakan double backslash di proyek saya menyelesaikan masalah saya.
sumber
@"server\instance"
atau"server\\instance"
seharusnya berfungsi. Jika ada dalam file konfigurasi, maka Anda hanya ingin server teks biasa \ instance.Terima kasih kepada Damian ...
TCP / IP Named Pipes ... keduanya diaktifkan
Konfigurasi Web .... (untuk localhost)
sumber
Memang punya masalah yang sama. Menghabiskan waktu 6 jam ketika harus melakukan migrasi beberapa server. Mencoba semua saran yang tersedia tentang topik ini dan lainnya.
Solusi semudah server restart!
sumber
dalam kasus saya, saya memiliki server mandiri, saya mengubah port default port server sql 1433 di manajer konfigurasi ke beberapa nomor dan memulai kembali layanan servis sql agar berlaku, saya dapat terhubung ke server sql melalui studio manajemen jika saya login ke server. tetapi saya tidak dapat terhubung dari mesin lokal saya melalui sql server, saya mendapatkan kesalahan:
Terjadi kesalahan terkait-jaringan atau spesifik-contoh saat membuat koneksi ke SQL Server. Server tidak ditemukan atau tidak dapat diakses. Pastikan nama instance sudah benar dan
SQL Server dikonfigurasi untuk memungkinkan koneksi jarak jauh. (penyedia: Penyedia Pipa Bernama, galat: 40 - Tidak dapat membuka koneksi ke SQL Server) (Microsoft SQL Server, Galat: 5)
Saya memeriksa dan memverifikasi semua di bawah ini
-Nama Pipa / TCP diaktifkan. Koneksi -Remote diizinkan. -Windows Firewall mati -Menciptakan pengecualian untuk portin Windows Firewall (ini tidak diperlukan dalam kasus saya karena server berada di jaringan subnet yang sama). -Mengaktifkan semua yang ada di SQL Server Configuration Manager.
kemudian saya chnaged kembali nomor port ke default 1433 dan me-restart layanan server sql, dan masalah terselesaikan dan saya dapat menghubungkan server sql dari studio manajemen lokal saya.
sumber
Saya memiliki masalah yang sama. Saya menggunakan MSSQL Server Management Studio 2017 dan memecahkan masalah ini menggunakan langkah-langkah ini:
dan memperbaikinya.
sumber
Coba langkah-langkah berikut:
Buka jendela Layanan (buka "run box" dan ketik services.msc).
Mencari layanan SQL (dengan awalan SQL).
Mulai mereka (jika tidak dapat memulai. Goto langkah 4).
Klik kanan untuk setiap layanan -> Properti -> Ubah ke tab "Log on" -> choise log on sebagai "Local ..." -> 0K. Kemudian mulai layanan SQL lagi.
Coba Buka SQL dan hubungkan basis data.
sumber
Anda akan menemukan kemungkinan besar nama DB Anda tidak benar, Anda akan melihat nama server di VS seperti "DESKTOP-0I14BKI" tetapi jika Anda membuka SSMS Anda akan melihat DESKTOP-0I14BKI \ SQLBLAHBLAH , cukup tambahkan " \ SQLBLAHBLAH " (nama contoh ) ke "nama server" Anda di properti koneksi VS.
Anda akan melihat :
Memperbaiki:
sumber
TL; DR; Contoh SQL Server Anda menggunakan port dinamis yang tidak berfungsi. Memaksa SQL Server untuk menggunakan porta statis # 1433.
Detail Lengkap : Pertama-tama masalah ini lebih mungkin terjadi jika Anda hanya memiliki campuran instance default dan bernama atau instance bernama (yang merupakan kasus saya).
Konsep kunci : Setiap instance Microsoft SQL Server yang diinstal pada komputer menggunakan porta yang berbeda untuk mendengarkan permintaan koneksi yang masuk. Contoh default dari SQL Server menggunakan port # 1433. Ketika Anda menginstal instance bernama maka mereka akan mulai menggunakan port dinamis yang diputuskan pada saat start-up dari layanan Windows yang sesuai dengan instance SQL Server bernama.
Kode saya gagal (dengan kode kesalahan 40) terhubung ke satu-satunya contoh bernama SQL Server yang saya miliki di VM saya. Anda dapat mencoba solusi di bawah ini:
Solusi # 1 : Kode klien yang mencoba terhubung ke instance SQL Server membutuhkan bantuan dari layanan browser SQL Server untuk mencari tahu nomor port di mana instance Anda bernama sedang mendengarkan koneksi yang masuk. Pastikan layanan browser SQL berjalan di komputer Anda.
Solusi # 2 : Periksa port # (dalam warna kuning) yang digunakan contoh SQL Server bernama Anda dari manajer konfigurasi SQL Server seperti yang ditunjukkan dalam snapshot di bawah ini:
Gunakan nomor port itu secara eksplisit dalam string koneksi Anda atau dengan yang
sqlcmd
ditunjukkan di bawah ini:Solusi # 3 : Paksa instance bernama Anda untuk menggunakan port # 1433 yang digunakan secara default. Ingat ini hanya akan berfungsi jika Anda tidak memiliki instance SQL Server default di komputer Anda karena instance SQL Server default sudah menggunakan port # 1433. Nomor port yang sama tidak dapat digunakan oleh dua layanan Windows yang berbeda.
Tandai
TCP Dynamic ports
bidang ke kosong danTCP Port
bidang ke 1433.Ubah nomor port di string koneksi Anda seperti yang ditunjukkan di bawah ini:
ATAU
Catatan : Setiap perubahan dalam pengaturan TCP / IP memerlukan restart layanan Windows yang sesuai.
Cukup menarik setelah menyelesaikan kesalahan ketika saya kembali ke pengaturan port dinamis untuk mereproduksi kesalahan yang sama maka itu tidak terjadi. Tidak yakin kenapa.
Silakan baca di bawah utas menarik untuk mengetahui lebih lanjut tentang port dinamis SQL Server:
Bagaimana cara mengkonfigurasi SQL Server Port pada banyak instance?
Kapan Port Dinamis “dinamis”?
Kapan menggunakan port dinamis TCP dan kapan Port TCP?
Saya mendapat petunjuk tentang solusi masalah saya dari blog ini .
sumber
Dalam kasus saya, saya membuka SQL Server Management Studio dan mencari SQLEXPRESS di mesin Database saya. Itu memiliki dua contoh dan saya memilih yang benar.
sumber
Jika Anda bekerja dengan inti Asp.net dan menggunakan appsettings.json daripada menulis server sebagai localhost dan setelah menulis nama contoh sql untuk pipa bernama diaktifkan seperti ini
sumber
Solusi yang sangat sederhana
gunakan
(local)\InstanceName
itu saja. itu berhasil untuk saya.sumber
Jika Anda mencoba me-restart layanan MSSQLSERVER, dan itu tidak berhasil, ini mungkin solusi:
Jika Anda menggunakan SQLExpress, nama server Anda harus sebagai ComputerName \ SQLExpress berikut. Namun, untuk SQLDeveloper, Anda tidak perlu benar SQLDeveloper setelah ComputerName Anda.
sumber
Setelah mengikuti semua langkah yang disebutkan di sini , jika masih tidak terhubung, coba tambahkan DNS dengan alamat IP di file host di folder dll. Menambahkan alamat IP alih-alih nama DNS dalam string koneksi harus menjadi solusi sementara untuk memeriksa apakah koneksi benar-benar berfungsi.
sumber
saya memastikan dan melakukan hal di atas juga dan saya hanya ingin berbagi bahwa BACKSLASH GANDA
oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";
Menggunakan BACKSLASH SINGLE menghasilkan kesalahan build yaitu: Kesalahan 1 Urutan melarikan diri yang tidak dikenali
Saya harap ini membantu pria berikutnya - Saya sudah mengorbankan makan malam, camilan tengah malam, dan NBA menyoroti waktu untuk menyelesaikan masalah ini (malu)
Terima kasih kepada [Tamizh venthan] ^ _ ^
sumber
Aktifkan TCP / Ip, Piped Protocol dengan masuk ke Computer Management -> SQL and Services, pastikan Layanannya Aktif. Enbale port pada Firewall. Cobalah masuk melalui Command Prompt -> sebagai Admin; terakhir Nama Pengguna harus (lokal) \ SQLEXPRESS. Semoga ini membantu.
sumber
Buka Manajer Konfigurasi SQL Server
sumber
Saya memiliki masalah yang sama dan menyelesaikan masalah dengan menonaktifkan firewall saya (ESET).
Langkah pertama untuk mengatasi masalah ini adalah dengan mencoba melakukan ping komputer Anda sendiri dari komputer lain. Jika firewall Anda aktif, Anda mungkin tidak dapat melakukan ping sendiri. Saya mencoba melakukan ping pada pc saya sendiri, kemudian ping gagal (tidak mendapat respons dari server)
sumber
Saya telah menyarankan langkah-langkah di bawah ini untuk menyelesaikan masalah Anda Bagaimana cara memperbaiki kesalahan 'Named Pipes Provider, error 40 - Tidak dapat membuka koneksi ke' SQL Server '
sumber
Saya mencoba menambahkan koneksi baru di VS2015. Tidak ada saran di sini yang berfungsi. Mencurigai semacam bug di wizard, terutama karena SSMS dapat terhubung dengan baik, saya memutuskan untuk mencoba dan mengelabui itu. Berhasil!
Alih-alih menambahkan koneksi, gunakan "Buat Database SQL Server baru". Masukkan nama server Anda dan nama acak untuk DB baru, mis. "Test".
Dengan asumsi ini berhasil, buka Server Explorer di VS, cari koneksi di Koneksi Data, klik kanan dan pilih Ubah Koneksi.
Ubah "test" (dari langkah 1) ke nama database yang ada yang ingin Anda sambungkan. Klik "Uji Koneksi". Kali ini seharusnya bekerja!
Hapus basis data sementara yang Anda buat pada langkah 1.
sumber
Saya punya satu solusi lagi, saya pikir. Saya baru-baru ini mengubah nama komputer saya jadi, setelah saya tidak dapat terhubung diam setelah mencoba semua metode di atas. Saya mengubah nama Server .. Nama server => (telusuri lebih lanjut) => di bawah mesin basis data, server baru ditemukan sama dengan komputer nama baru. Ini berhasil, dan hidup kembali baik.
sumber
Saya berjuang selama berabad-abad dalam hal ini sebelum saya menyadari kesalahan saya - Saya telah menggunakan koma alih-alih titik koma dalam string hubungkan
sumber
Saya memiliki masalah ini tetapi tidak ada saran di atas yang memperbaikinya.
Saya melihat masalah ini ketika saya menyebarkan situs web saya ke IIS. Cara mengatasinya adalah masuk ke pengaturan lanjutan terhadap kumpulan aplikasi default dan mengubah properti identitas dari default ke Administrator.
sumber
Bagi saya itu adalah masalah Firewall.
Pertama, Anda harus menambahkan port (seperti 1444 dan mungkin 1434) tetapi juga
dan
Kedua kalinya saya mendapatkan masalah ini adalah ketika saya kembali ke firewall, jalurnya tidak benar dan saya perlu memperbarui formulir 12 hingga 13! Mengklik pada browse di tab Program dan Layanan membantu mewujudkan hal ini.
Akhirnya, coba jalankan perintah
Bagi saya, itu mengembalikan alasan kesalahan
sumber
Saya mencoba hampir semua yang ada di halaman ini, tetapi saya memiliki beberapa masalah mendasar yang sebenarnya perlu diselesaikan. Saya tidak dapat melakukan hal-hal tertentu seperti membuka SQL Server Configuration Manager, yang akhirnya menjadi file penyedia WMI yang korup / hilang.
Ada banyak cara yang membosankan untuk menyelesaikan masalah ini sesuai dengan apa yang saya baca, tetapi alat dari tweaking.com dapat menghapus dan mengganti / memperbaiki file penyedia WMI (Instrumentasi Manajemen Windows) saya.
Saya biasa melakukan perbaikan komputer dan secara keseluruhan alat tweaking.com benar-benar membuat saya terkesan, dan disarankan dari salah satu halaman forum kesalahan WMI yang saya kunjungi.
Setelah saya memperbaiki masalah ini, saya dapat terhubung ke SQL db saya, baik secara lokal maupun jarak jauh.
Semoga ini bisa membantu seseorang.
sumber