ฉันจะแก้ไขข้อผิดพลาด 'เนมไปป์ผู้ให้บริการข้อผิดพลาด 40 - ไม่สามารถเปิดการเชื่อมต่อกับ' SQL Server 'ได้อย่างไร


152

ฉันดูเหมือนจะไม่สามารถเชื่อมต่อกับฐานข้อมูลของฉันจากเว็บไซต์ ฉันได้รับข้อผิดพลาดนี้:

ผู้ให้บริการไปป์ที่มีชื่อข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server

ฉันลองใช้ที่อยู่ IP ในเครื่องเพื่อเชื่อมต่อกับสาธารณะ ฉันพยายามแล้ว:

  1. ใช่ไซต์สามารถสื่อสารกับเซิร์ฟเวอร์ได้
  2. Named pipes / TCP ถูกเปิดใช้งาน
  3. อนุญาตการเชื่อมต่อระยะไกล
  4. ไฟร์วอลล์ Windowsปิดอยู่
  5. สร้างข้อยกเว้นสำหรับพอร์ต 1433 ในไฟร์วอลล์ Windows
  6. เปิดใช้งานทุกอย่างในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

ฉันจะทำอะไรที่นี่อีก


2
มันอาจคุ้มค่าที่จะตรวจสอบว่า SQL Server ใช้พอร์ต 1433 จริง ๆ หรืออาจใช้บางอย่างที่ไม่ใช่พอร์ตเริ่มต้น
Rajeev Shenoy

ตรวจสอบให้แน่ใจด้วยในขณะที่ส่ง Ping ว่าชื่อเซิร์ฟเวอร์ถูกตั้งค่าอย่างถูกต้อง (หรือเขียนได้ดี) นี่เป็นปัญหาในกรณีของฉัน!
Yann Chabot

@RajeevShenoy: คุณจะบอกได้อย่างไรว่าไม่มีการเชื่อมต่อ (ซึ่งเป็นปัญหา) ฉันสามารถบอกพอร์ตได้ในขณะที่เชื่อมต่อโดยใช้ netstat แต่จะทำงานได้ก็ต่อเมื่อมีการเชื่อมต่อ
MSIS

คำตอบ:


117

การแก้ปัญหานี้ง่ายมาก:

  1. ไปที่แผงควบคุม
  2. ค้นหาบริการ
  3. เปิดหน้าต่าง Local Services จากผลการค้นหาของคุณ
  4. เริ่มบริการ MSSQLSERVER ของคุณใหม่

สกรีนช็อตของขั้นตอน:

สกรีนช็อตของขั้นตอน


1
ว้าวสตูดิโอการจัดการจะไม่เริ่มบริการของฉันแม้ว่าจะถูกตั้งเป็นอัตโนมัติขอบคุณ
johnny 5

ขอบคุณสิ่งนี้ช่วยฉันจะต้องเริ่มบริการจากที่นี่ทุกครั้งหรือไม่ ก่อนหน้านี้ฉันไม่จำเป็นต้อง
naz786

3
เกิดอะไรขึ้นถ้าบริการนี้ไม่ได้อยู่ที่นี่ ฉันได้ติดตั้ง SQL Server 17. ฉันไม่เห็นบริการนี้ ....
Ciaran Gallagher

1
การสำรองฐานข้อมูล 170GB จะทำให้บริการหยุดทำงาน ต้องขอบคุณสิ่งนี้ใช้เวลาเพียง 5 นาทีในการรีสตาร์ทเซิร์ฟเวอร์ sql ที่ลูกค้ารายสำคัญใช้ ขอบคุณมาก.
Shondeslitch

2
ตรวจสอบการกระทำทั้งหมดแล้ว แต่การรีสตาร์ทไม่ทำงานสำหรับฉัน ยังคงได้รับข้อผิดพลาดเดียวกัน
JayPex

89

และทางออกที่ง่ายที่สุด - ตรวจสอบว่าเครื่องหมายทับของคุณกลับมาหรือไม่ ...

ผมใช้เวลาประมาณหนึ่งชั่วโมงพยายามที่จะคิดออกว่ามีอะไรผิดปกติกับSERVER / INSTANCENAMEเมื่อทุกอย่างถูกกำหนดค่าอย่างถูกต้องชื่อ pipes, สิทธิในการเข้าถึงผู้ใช้ ... และก็จะหลงฉันก็ไม่ได้เฉือนมันเป็นทับขวา ( \)

ความสยองขวัญความอับอาย ...


2
ฉันมีปัญหาของ OP และปรากฏว่าฉันพลาดข้อมูลSERVER / INSTANCENAME (มีจุดอยู่ตรงนั้นแทน)
LuxDie

@LuxDie คุณใส่SERVER \ INSTANCENAMEไว้ที่ไหนและอยู่ที่ไหน
tom_mai78101

อันนี้เป็นกุญแจสำคัญซึ่งไม่ควรลืมว่าคุณต้องเชื่อมต่อกับ "ฐานข้อมูล" ที่โฮสต์อยู่บนเซิร์ฟเวอร์ ข้อผิดพลาดนี้จะเพิ่มขึ้นหากคุณใช้ชื่อโฮสต์ของเซิร์ฟเวอร์สำหรับการเชื่อมต่อเท่านั้นและพยายามใช้ instancename เป็นฐานข้อมูลหรือในทางกลับกัน
MichaelHuelsen

แก้ไขปัญหาของฉัน ทำงานสตริงการเชื่อมต่อ: Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatformในขณะที่ในการพัฒนา (C #) ผมได้รับการเชื่อมต่อกับการติดตั้งภายใน MSSQL 2017 เซิร์ฟเวอร์ Instanceแต่เมื่อผมไปปรับใช้เซิร์ฟเวอร์ระยะไกลติดตั้งโดยผู้จำหน่ายซอฟต์แวร์ถูกเรียกใช้ในฐานะที่เป็น ฉันคิดอยู่ตลอดว่ามันเป็นปัญหาการตรวจสอบสิทธิ์เพราะมันทำงานเป็นบริการหรือบางอย่างจนกระทั่งฉันพบสิ่งนี้
Alan

49

เป็นกระบวนการสามขั้นตอนจริงๆหลังจากติดตั้ง SQL Server:

  1. เปิดใช้งานเนมไปป์ตัวจัดการการกำหนดค่า SQL -> ข้อตกลงเครือข่ายเซิร์ฟเวอร์ SQL -> โปรโตคอล -> เนมไปป์ -> คลิกขวา -> รีสตาร์ท

เปิดใช้งาน pipes ที่มีชื่อ

  1. รีสตาร์ทเซิร์ฟเวอร์ SQL Config Manager -> บริการเซิร์ฟเวอร์ SQL -> เซิร์ฟเวอร์ SQL (SQLEXPRESS) -> คลิกขวา -> รีสตาร์ท

  2. ใช้ชื่อเซิร์ฟเวอร์และอินสแตนซ์ที่เหมาะสม (จำเป็นต้องใช้ทั้งคู่!) โดยทั่วไปจะเป็น\ SQLEXPRESSเช่นดูภาพหน้าจอจากกล่องโต้ตอบการเชื่อมต่อ QueryExpress

ป้อนคำอธิบายรูปภาพที่นี่

ที่นั่นคุณมีมัน


เนื่องจากคุณมีคำตอบให้คะแนนค่อนข้างช้า มันคืออะไรเมื่อคุณมีบริการที่สื่อสารกับเซิร์ฟเวอร์ sql ของคุณแล้ว 3 ชั่วโมงในการทำงานมันเริ่มที่จะได้รับข้อผิดพลาดนี้ที่ยังคงมีอยู่เป็นเวลา 10 นาทีหรือมากกว่านั้น จากนั้นบริการยังคงทำงานเหมือนก่อนเกิดข้อผิดพลาด ???
TS

นี่สำหรับการเชื่อมต่อท้องถิ่นหรือไม่ อะไรคือสิ่งที่จำเป็นสำหรับการเชื่อมต่อระยะไกลผ่านเครือข่าย
Kissaki

19

ฉันเพิ่งติดตั้งผู้พัฒนา SQL SERVER 2012 เมื่อฉันสร้างแพคเกจ SSIS แรกของฉันฉันได้รับข้อผิดพลาดของไปป์นี้เมื่อฉันพยายามสร้างงานการเชื่อมต่อข้อมูลในเครื่องมือข้อมูล SQL Server 2012 ในกล่องเครื่องมือจัดการการเชื่อมต่อ ฉันแก้ไขด้วยความช่วยเหลือของโพสต์ด้านบน

หากเลือกอินสแตนซ์ที่มีชื่อและคุณเรียกใช้อินสแตนซ์ที่มีชื่อของคุณ SSQDatabase1 และชื่อพีซีของคุณคือ PCX1 คุณต้องป้อน PCX1 \ SSQDatabase1 ไม่ใช่แค่ SSQDatabase1 มิฉะนั้นคุณจะได้รับข้อผิดพลาดไพพ์ที่มีชื่อ


16

เธรดบน MSDN Social, Re: Named Pipes Provider, ข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server , มีรายการปัญหาที่เป็นไปได้ที่เกี่ยวข้องกับข้อผิดพลาดของคุณ คุณอาจต้องการดูว่าพวกเขาอาจเป็นสิ่งที่คุณกำลังประสบอยู่หรือไม่

  • สตริงการเชื่อมต่อไม่ถูกต้องเช่นการใช้ SqlExpress
  • Named Pipes (NP) ไม่ได้เปิดใช้งานบนอินสแตนซ์ SQL
  • ไม่ได้เปิดใช้งานการเชื่อมต่อระยะไกล
  • เซิร์ฟเวอร์ไม่เริ่มทำงานหรือชี้ไปที่ไม่ใช่เซิร์ฟเวอร์จริงในสตริงการเชื่อมต่อของคุณ
  • เหตุผลอื่นเช่นบริบทความปลอดภัยไม่ถูกต้อง
  • ลองทดสอบการเชื่อมต่อพื้นฐานระหว่างสองเครื่องที่คุณกำลังทำงาน

ผ่านไปอย่างน่าเสียดายที่ไม่ได้ช่วย :(
ดาเมียน

4
เอาล่ะลองคิดดูสิ ปรากฎเมื่อฉันติดตั้งเซิร์ฟเวอร์ฉันทำอินสแตนซ์ที่มีชื่อ คุณไม่สามารถเชื่อมต่อกับอินสแตนซ์ที่ตั้งชื่อได้เช่นเดียวกับที่คุณทำกับอินสแตนซ์เริ่มต้น ดังนั้นแหล่งข้อมูล: localhost \ name ของอินสแตนซ์ที่ใช้งานได้ ยังไม่สามารถไปด้วยที่อยู่ ip แต่ในที่สุดก็ดีใจที่ได้เชื่อมต่อ
ดาเมียน

ดีใจที่ได้ยิน แต่คุณสามารถเชื่อมต่อกับมันโดยใช้ความอยากรู้ได้ip.ip.ip.ip/NamedInstanceหรือไม่?
Khan

10

ฉันเพิ่งเปิดใช้งาน TCP / IP, VIA, เนมไปป์ในตัวจัดการการตั้งค่าคอนฟิกเซิร์ฟเวอร์ SQL, ปัญหาของฉันได้รับการแก้ไขอ้างถึงนี้สำหรับข้อมูลเพิ่มเติมการแก้ไขข้อผิดพลาดเนมไปป์ 40


ลิ้งค์ ข้อมูลเกี่ยวกับสิ่งที่มันพูด?
Kissaki

7

ใช้SERVER \\ INSTANCE NAME การ ใช้แบ็กสแลชสองครั้งในโครงการของฉันแก้ไขปัญหาของฉันได้


อันนี้ใช้ได้สำหรับฉันด้วย แต่ใครสามารถบอกฉันได้ว่าทำไมจึงใช้งานได้
GWR

ฉันจะบอกว่าสตริงหลบหนี แต่ขึ้นอยู่กับบริบท
mizuki nakeshu

หากสตริงนั้นอยู่ในรหัส C # @"server\instance"หรือ"server\\instance"ควรใช้งานได้ หากอยู่ในไฟล์ปรับแต่งคุณก็แค่ต้องการเซิร์ฟเวอร์ข้อความธรรมดา \ instance
Denise Skidmore

7

ขอบคุณดาเมียน ...

TCP / IP Named Pipes ... เปิดใช้งานทั้งคู่

เว็บกำหนดค่า .... (สำหรับ localhost)

<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />

5

มีปัญหาเดียวกันหรือเปล่า ใช้เวลาประมาณ 6 ชั่วโมงเมื่อต้องโยกย้ายเซิร์ฟเวอร์บางตัว พยายามแนะนำทั้งหมดที่มีอยู่ในหัวข้อนี้และอื่น ๆ

โซลูชันนั้นง่ายเหมือนการรีสตาร์ทเซิร์ฟเวอร์!


1
น่าเศร้าที่การรีเซ็ตเซิร์ฟเวอร์แก้ไขปัญหาให้ฉันด้วย ข้อเสนอแนะอื่น ๆ ทั้งหมดที่กล่าวถึงได้พยายามที่จะไม่มีประโยชน์
MrShmee

3

ในกรณีของฉันฉันมีเซิร์ฟเวอร์แบบสแตนด์อโลนฉันเปลี่ยนพอร์ตเริ่มต้นของพอร์ตเซิร์ฟเวอร์ sql 1433 ในตัวจัดการการกำหนดค่าเป็นจำนวนหนึ่งและเริ่มบริการ sql ที่ให้บริการเพื่อให้มีผลฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ sql ผ่านสตูดิโอจัดการถ้าฉันลงชื่อเข้าใช้ ไปยังเซิร์ฟเวอร์ แต่ฉันไม่สามารถเชื่อมต่อจากเครื่องท้องถิ่นผ่านเซิร์ฟเวอร์ sql ฉันได้รับข้อผิดพลาด:

เกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเฉพาะอินสแตนซ์ขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ ตรวจสอบว่าชื่ออินสแตนซ์นั้นถูกต้องและ

มีการกำหนดค่า SQL Server ให้อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: เนมไปป์ผู้ให้บริการข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server) (Microsoft SQL Server ข้อผิดพลาด: 5)

ฉันตรวจสอบและตรวจสอบทั้งหมดด้านล่าง

-Named pipes / TCP ถูกเปิดใช้งาน - การเชื่อมต่อระยะไกลได้รับอนุญาต -Windows Firewall ปิด - สร้างข้อยกเว้นสำหรับ portin Windows Firewall (ไม่จำเป็นในกรณีของฉันเนื่องจากเซิร์ฟเวอร์อยู่ในเครือข่ายย่อยเดียวกัน) - เปิดใช้งานทุกอย่างใน SQL Server Configuration Manager

จากนั้นฉันก็เปลี่ยนหมายเลขพอร์ตให้เป็นค่าเริ่มต้น 1433 และเริ่มบริการเซิร์ฟเวอร์ sql อีกครั้งและปัญหาได้รับการแก้ไขและฉันสามารถเชื่อมต่อเซิร์ฟเวอร์ sql จากสตูดิโอจัดการในพื้นที่ของฉันได้


3

ผมมีปัญหาเหมือนกัน. ฉันใช้ MSSQL Server Management Studio 2017 และแก้ไขปัญหานี้โดยใช้ขั้นตอนเหล่านี้:

  1. ตรวจสอบว่าบริการ SQL Server ทำงานได้ดีหรือไม่
  2. ตรวจสอบการทำงานในสภาพที่ดี SQL Server (MSSQLSERVER)
  3. ตรวจสอบการทำงานของ SQL Server ด้วย
  4. รีสตาร์ทเซิร์ฟเวอร์ SQL (MSSQLSERVER)

และแก้ไขมัน


3
ขอบคุณสำหรับสิ่งนี้! เบราว์เซอร์เซิร์ฟเวอร์ SQL ถูกปิดการใช้งานดังนั้นสิ่งนี้จะแก้ไขได้สำหรับฉัน!
Sam

2

ลองขั้นตอนต่อไปนี้:

  1. เปิดหน้าต่างบริการ (เปิด "เรียกใช้กล่อง" และพิมพ์ services.msc)

  2. กำลังมองหาบริการ SQL (พร้อมคำนำหน้า SQL)

  3. เริ่มต้น (ถ้าไม่สามารถเริ่มได้ไปที่ขั้นตอนที่ 4)

  4. คลิกขวาที่แต่ละบริการ -> คุณสมบัติ -> เปลี่ยนเป็นแท็บ "ล็อกออน" -> เลือกล็อกออนเป็น "Local ... " -> 0K จากนั้นเริ่มบริการ SQL อีกครั้ง

ลอง Open SQL และเชื่อมต่อฐานข้อมูล


2

คุณจะพบว่าชื่อฐานข้อมูลของคุณไม่ถูกต้องคุณจะเห็นชื่อเซิร์ฟเวอร์ใน VS เช่น "DESKTOP-0I14BKI" แต่ถ้าคุณเปิด SSMS คุณจะเห็นDESKTOP-0I14BKI \ SQLBLAHBLAHเพียงเพิ่ม " \ SQLBLAHBLAH " (ชื่ออินสแตนซ์ ) ไปที่ "ชื่อเซิร์ฟเวอร์" ในคุณสมบัติการเชื่อมต่อ VS

คุณจะเห็น : ป้อนคำอธิบายรูปภาพที่นี่

เพื่อแก้ไข: ป้อนคำอธิบายรูปภาพที่นี่


2

TL; DR; อินสแตนซ์ SQL Server ของคุณกำลังใช้พอร์ตแบบไดนามิกซึ่งไม่ทำงาน บังคับให้ SQL Server ใช้พอร์ตแบบคงที่ # 1433

รายละเอียดที่สมบูรณ์ : ก่อนอื่นปัญหานี้มีแนวโน้มมากขึ้นถ้าคุณมีการผสมผสานของค่าเริ่มต้นและอินสแตนซ์ที่มีชื่อหรืออินสแตนซ์ที่ตั้งชื่อเท่านั้น (ซึ่งเป็นกรณีของฉัน)

แนวคิดหลัก : แต่ละอินสแตนซ์ของ Microsoft SQL Server ที่ติดตั้งบนคอมพิวเตอร์ใช้พอร์ตอื่นเพื่อฟังคำขอการเชื่อมต่อขาเข้า อินสแตนซ์เริ่มต้นของ SQL Server ใช้พอร์ต # 1433 ในขณะที่คุณติดตั้งอินสแตนซ์ที่มีชื่อจากนั้นพวกเขาจะเริ่มใช้พอร์ตแบบไดนามิกซึ่งจะตัดสินใจเมื่อเริ่มต้นบริการ Windows ที่สอดคล้องกับอินสแตนซ์ SQL Server ที่มีชื่อ

รหัสของฉันล้มเหลว (พร้อมรหัสข้อผิดพลาด 40) เพื่อเชื่อมต่อกับอินสแตนซ์ SQL Server ชื่อเดียวที่ฉันมีบน VM ของฉัน คุณสามารถลองวิธีแก้ปัญหาที่เป็นไปได้ด้านล่าง:

โซลูชัน # 1 : รหัสไคลเอนต์ที่พยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server รับความช่วยเหลือจากบริการเบราว์เซอร์ SQL Server เพื่อหาหมายเลขพอร์ตที่อินสแตนซ์ที่คุณตั้งชื่อไว้คอยรับฟังการเชื่อมต่อขาเข้า ตรวจสอบให้แน่ใจว่าบริการเบราว์เซอร์ SQL ทำงานบนคอมพิวเตอร์ของคุณ

โซลูชัน # 2 : ตรวจสอบพอร์ต # (สีเหลือง) อินสแตนซ์ SQL Server ของคุณชื่อใช้จากตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL ตามที่แสดงในภาพรวมด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ใช้หมายเลขพอร์ตนั้นอย่างชัดเจนในสตริงการเชื่อมต่อของคุณหรือตามที่sqlcmdแสดงด้านล่าง:

sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt

โซลูชัน # 3 : บังคับอินสแตนซ์ที่มีชื่อของคุณให้ใช้พอร์ต # 1433 ซึ่งถูกใช้โดยอินสแตนซ์เริ่มต้น โปรดจำไว้ว่านี่จะใช้งานได้ต่อเมื่อคุณไม่มีอินสแตนซ์ของ SQL Server เริ่มต้นบนคอมพิวเตอร์ของคุณเนื่องจากอินสแตนซ์ของ SQL Server ที่เป็นค่าเริ่มต้นจะใช้งานโดยใช้พอร์ต # 1433 แล้ว หมายเลขพอร์ตเดียวกันไม่สามารถใช้โดยบริการ Windows ที่แตกต่างกันสองรายการ

ทำเครื่องหมายTCP Dynamic portsฟิลด์เป็นฟิลด์ว่างและTCP Portฟิลด์เป็น 1433

ป้อนคำอธิบายรูปภาพที่นี่

เปลี่ยนหมายเลขพอร์ตในสตริงการเชื่อมต่อของคุณที่แสดงด้านล่าง:

sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt

หรือ

sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt

บันทึก : การเปลี่ยนแปลงทุกอย่างในการตั้งค่า TCP / IP นั้นต้องมีการเริ่มบริการ Windows ใหม่

น่าสนใจพอหลังจากแก้ไขข้อผิดพลาดเมื่อฉันกลับไปที่การตั้งค่าพอร์ตแบบไดนามิกเพื่อทำซ้ำข้อผิดพลาดเดียวกันมันก็ไม่ได้เกิดขึ้น ไม่แน่ใจว่าทำไม

โปรดอ่านหัวข้อที่น่าสนใจด้านล่างเพื่อทราบเพิ่มเติมเกี่ยวกับพอร์ตไดนามิกของ SQL Server:

วิธีการกำหนดค่าพอร์ตเซิร์ฟเวอร์ SQL ในหลายอินสแตนซ์

Dynamic Port“ ไดนามิก” เมื่อใด

เมื่อใดจึงจะใช้ TCP ไดนามิกพอร์ตและพอร์ต TCP เมื่อใด

ผมได้นำไปสู่ทางออกของปัญหาของฉันจากนี้บล็อก


1

ในกรณีของฉันฉันเปิด SQL Server Management Studio และค้นหา SQLEXPRESS ในโปรแกรมฐานข้อมูลของฉัน มีสองกรณีและฉันเลือกถูกต้อง

ป้อนคำอธิบายรูปภาพที่นี่


1

หากคุณทำงานกับแกน Asp.net และใช้ appsettings.json มากกว่าเขียนเซิร์ฟเวอร์เป็นlocalhostและหลังจากเขียนชื่ออินสแตนซ์ sql สำหรับการเปิดใช้งานไปป์ที่มีชื่อเช่นนี้

  "ConnectionString": {
    "dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
  },


1

หากคุณพยายามเริ่มบริการ MSSQLSERVER ใหม่และไม่ได้ผลนี่อาจเป็นวิธีแก้ปัญหา:

ถ้าคุณใช้ SQLExpress ชื่อเซิร์ฟเวอร์ของคุณควรเป็นชื่อคอมพิวเตอร์ต่อไปนี้ \ SQLExpress อย่างไรก็ตามสำหรับ SQLDeveloper คุณไม่จำเป็นต้อง SQLDeveloper ที่ถูกต้องหลังจาก ComputerName ของคุณ


0

หลังจากทำตามขั้นตอนทั้งหมดที่กล่าวถึงที่นี่หากยังไม่ได้เชื่อมต่อให้ลองเพิ่ม DNS ด้วยที่อยู่ IP ในไฟล์โฮสต์ในโฟลเดอร์ etc การเพิ่มที่อยู่ IP แทนชื่อ DNS ในสายอักขระการเชื่อมต่อควรเป็นโซลูชันชั่วคราวเพื่อตรวจสอบว่าการเชื่อมต่อใช้งานได้จริงหรือไม่


0

ฉันลองใช้ที่อยู่ IP ในเครื่องเพื่อเชื่อมต่อกับสาธารณะ ฉันพยายามแล้ว:

ใช่ไซต์สามารถสื่อสารกับเซิร์ฟเวอร์ Named pipes / TCP ถูกเปิดใช้งาน อนุญาตการเชื่อมต่อระยะไกล Windows Firewall ดับสร้างข้อยกเว้นสำหรับพอร์ต 1433 ใน Windows Firewall เปิดใช้งานทุกอย่างในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

ฉันมั่นใจและทำข้างต้นเช่นกันและฉันต้องการแบ่งปันว่า BACKSLASH สองเท่า

oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";

การใช้ BACKSLASH แบบซิงเกิลส่งผลให้เกิดข้อผิดพลาดในการบิลด์เช่น: Error 1 escape sequence ที่ไม่รู้จัก

ฉันหวังว่านี่จะช่วยคนต่อไป - ฉันเสียสละอาหารเย็น, อาหารว่างเที่ยงคืนและเอ็นบีเอไฮไลท์เวลาแก้ปัญหานี้ (ความอัปยศ)

ขอบคุณ [Tamizh venthan] ^ _ ^


0

เปิดใช้งาน TCP / Ip, Piped Protocol โดยไปที่การจัดการคอมพิวเตอร์ -> SQL และบริการตรวจสอบให้แน่ใจว่าบริการเปิดอยู่ เปิดใช้งานพอร์ตบนไฟร์วอลล์อีกครั้ง ลองเข้าสู่ระบบผ่าน Command Prompt -> as Admin; สุดท้ายชื่อผู้ใช้ควรจะ (ท้องถิ่น) \ SQLEXPRESS หวังว่านี่จะช่วยได้


0

เปิดตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

  1. เลือกบริการเซิร์ฟเวอร์ SQL จากด้านขวา
  2. ค้นหาเซิร์ฟเวอร์ของคุณจากขวาและไปที่คุณสมบัติ (ด้วยการคลิกขวา)
  3. เปลี่ยนวิธีการเข้าสู่ระบบท้องถิ่น

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันมีปัญหาเดียวกันและแก้ไขปัญหาด้วยการปิดใช้งานไฟร์วอลล์ของฉัน (ESET)

ขั้นตอนแรกในการแก้ไขปัญหานี้ควรลองส่ง Ping คอมพิวเตอร์ของคุณเองจากคอมพิวเตอร์เครื่องอื่น หากคุณเปิดไฟร์วอลล์คุณอาจไม่สามารถ ping ตัวเองได้ ฉันพยายามส่งเสียงพีซีของตัวเองจากนั้น ping ล้มเหลว (ไม่ได้รับการตอบกลับจากเซิร์ฟเวอร์)


0

ฉันได้แนะนำขั้นตอนด้านล่างเพื่อแก้ไขปัญหาของคุณฉันจะแก้ไขข้อผิดพลาด 'ผู้ให้บริการไปป์ที่มีชื่อแล้วข้อผิดพลาด 40 - ไม่สามารถเปิดการเชื่อมต่อกับ' SQL Server '

  1. ตรวจสอบว่าบริการ SQL Serverทำงานได้ดีหรือไม่
  2. นอกจากนี้ตรวจสอบสำหรับการทำงานในสภาพที่ดีSQL Server (MSSQLSERVER)
  3. ตรวจสอบการทำงานของSQL Serverด้วย
  4. ลบนามแฝงก่อนหน้าทั้งหมดตอนนี้สร้างนามแฝงใหม่ตามความต้องการของคุณ
  5. ตรวจสอบการทำงานของ SQL Server Default Port 1433
  6. คลิกถัดไปบนไคลเอนต์โปรโตคอลในอินสแตนซ์จากนั้นคลิกที่TCP / IPตอนนี้คลิกเมาส์คลิกขวาเปิดคุณสมบัติที่นี่คุณสามารถมั่นใจได้ว่าการทำงานของคุณดีพอร์ตเริ่มต้นของคุณ SQL 14331433
  7. เปิดสตูดิโอจัดการเซิร์ฟเวอร์ SQLของคุณจากนั้นคลิกขวาคลิกที่ตัวเลือก " คุณสมบัติ " จากนั้นคลิกที่แท็บการเชื่อมต่อจากนั้นทำเครื่องหมายในช่องเพื่ออนุญาตการเชื่อมต่อระยะไกลไปยังเซิร์ฟเวอร์นี้
  8. ตรวจสอบการทำงานที่ถูกต้องหรือPing IP Host ของคุณ

0

ฉันพยายามเพิ่มการเชื่อมต่อใหม่ใน VS2015 ไม่มีคำแนะนำใด ๆ ที่นี่ใช้งานได้ สงสัยข้อผิดพลาดบางอย่างในตัวช่วยสร้างโดยเฉพาะอย่างยิ่งเมื่อ SSMS สามารถเชื่อมต่อได้ดีฉันตัดสินใจลองและหลอกลวง มันได้ผล!

  1. แทนที่จะเพิ่มการเชื่อมต่อให้ใช้ "สร้างฐานข้อมูลเซิร์ฟเวอร์ SQL ใหม่" ป้อนชื่อเซิร์ฟเวอร์ของคุณและชื่อแบบสุ่มสำหรับฐานข้อมูลใหม่เช่น "ทดสอบ"

  2. สมมติว่านี่สำเร็จเปิด Server Explorer ใน VS ค้นหาการเชื่อมต่อในการเชื่อมต่อข้อมูลคลิกขวาที่มันแล้วเลือกปรับเปลี่ยนการเชื่อมต่อ

  3. เปลี่ยน "ทดสอบ" (จากขั้นตอนที่ 1) เป็นชื่อของฐานข้อมูลที่มีอยู่ที่คุณต้องการเชื่อมต่อ คลิก "ทดสอบการเชื่อมต่อ" คราวนี้มันควรจะทำงาน!

  4. ลบฐานข้อมูลชั่วคราวที่คุณสร้างในขั้นตอนที่ 1


0

ฉันมีทางออกอีกหนึ่งฉันคิดว่า ฉันเพิ่งเปลี่ยนชื่อคอมพิวเตอร์ของฉันดังนั้นหลังจากฉันไม่สามารถเชื่อมต่อได้หลังจากลองวิธีการด้านบนทั้งหมด ฉันเปลี่ยนชื่อเซิร์ฟเวอร์ .. ชื่อเซิร์ฟเวอร์ => (เรียกดูมากขึ้น) => ภายใต้โปรแกรมฐานข้อมูลพบเซิร์ฟเวอร์ใหม่เหมือนกับชื่อคอมพิวเตอร์ใหม่ สิ่งนี้ใช้ได้ผลและชีวิตก็ดีขึ้นอีกครั้ง


0

ฉันพยายามมานานหลายปีในเรื่องนี้ก่อนที่ฉันจะรับรู้ถึงข้อผิดพลาดของฉัน - ฉันใช้เครื่องหมายจุลภาคแทนเครื่องหมายอัฒภาคในสตริงการเชื่อมต่อ


0

ฉันมีปัญหานี้ แต่ไม่มีคำแนะนำข้างต้นคงที่

ฉันเห็นปัญหานี้เมื่อฉันปรับใช้เว็บไซต์ของฉันกับ IIS การแก้ไขคือไปสู่การตั้งค่าขั้นสูงกับกลุ่มแอพเริ่มต้นและเปลี่ยนคุณสมบัติข้อมูลเฉพาะตัวจากค่าเริ่มต้นเป็นผู้ดูแลระบบ


0

สำหรับฉันมันเป็นปัญหาไฟร์วอลล์

ก่อนอื่นคุณต้องเพิ่มพอร์ต (เช่น 1444 และอาจจะ 1434) แต่ด้วย

C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

และ

%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE

ครั้งที่สองที่ฉันได้รับปัญหานี้คือเมื่อฉันกลับมาที่ไฟร์วอลล์เส้นทางไม่ถูกต้องและฉันจำเป็นต้องอัปเดตฟอร์ม 12 ถึง 13! เพียงคลิกที่เบราส์ในแท็บโปรแกรมและบริการช่วยในการตระหนักถึงสิ่งนี้

ในที่สุดลองเรียกใช้คำสั่ง

EXEC xp_readerrorlog 0,1 "ไม่สามารถลงทะเบียนชื่อบริการหลัก" Null

สำหรับฉันมันส่งคืนข้อผิดพลาดด้วยเหตุผล


0

ฉันพยายามทุกอย่างในหน้านี้ แต่ฉันมีปัญหาพื้นฐานซึ่งเป็นสิ่งที่จำเป็นต้องแก้ไข ฉันไม่สามารถทำสิ่งต่าง ๆ เช่นเปิดตัวจัดการการตั้งค่าคอนฟิกเซิร์ฟเวอร์ SQL ซึ่งท้ายที่สุดเป็นไฟล์ตัวให้บริการ WMI ที่เสียหาย / หายไป

มีวิธีที่น่าเบื่อมากมายในการแก้ไขปัญหานี้ตามสิ่งที่ฉันอ่าน แต่เครื่องมือจาก tweaking.com สามารถลบและแทนที่ / ซ่อมแซมไฟล์ผู้ให้บริการ WMI (Windows Management Instrumentation) ของฉัน

ฉันเคยทำการซ่อมคอมพิวเตอร์และเครื่องมือ tweaking.com โดยรวมนั้นทำให้ฉันประทับใจจริงๆและมันก็เป็นข้อเสนอแนะจากหนึ่งในหน้าฟอรัมข้อผิดพลาด WMI ที่ฉันไป

หลังจากที่ฉันแก้ไขปัญหานี้ฉันสามารถเชื่อมต่อกับฐานข้อมูล SQL ของฉันได้ทั้งในพื้นที่และจากระยะไกล

หวังว่านี่จะช่วยใครซักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.