ฉันไม่สามารถเชื่อมต่อกับฐานข้อมูล SQL เซิร์ฟเวอร์ของฉันผ่านที่อยู่ IP


45

ฉันติดตั้งเซิร์ฟเวอร์ที่รัน Windows Server 2008 และติดตั้ง SQL Server 2008 Express แล้ว

ฉันสามารถเชื่อมต่อกับฐานข้อมูล SQL Server Express MACHINENAME/SQLEXPRESSของเครื่องผ่านทาง

อย่างไรก็ตามเมื่อเราเชื่อมต่อผ่านซอฟต์แวร์หรือสคริปต์โดยใช้ที่อยู่ IPจะไม่อนุญาตการเชื่อมต่อ

ฉันเหนื่อย:

  • ปิดไฟร์วอลล์
  • อนุญาตการเชื่อมต่อระยะไกลสำหรับฐานข้อมูล SQL
  • การเปิดใช้งาน TCP / IP ภายในการกำหนดค่า SQL

เมื่อเราพยายามเชื่อมต่อผ่านซอฟต์แวร์ 'SQL Server Management Studio' เราจะได้รับข้อความต่อไปนี้:

ข้อความผิดพลาด:

เกิดข้อผิดพลาดขณะสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ เมื่อเชื่อมต่อกับ SQL Server 2005 ความล้มเหลวนี้อาจเกิดจากข้อเท็จจริงที่ว่าภายใต้การตั้งค่าเริ่มต้น SQL Server ไม่อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: ผู้ให้บริการ TCP ข้อผิดพลาด: 0 - ไม่สามารถทำการเชื่อมต่อได้เนื่องจากเครื่องเป้าหมายปฏิเสธอย่างแข็งขัน) (Microsoft SQL Server ข้อผิดพลาด: 10061)

สร้างการเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จแล้ว แต่เกิดข้อผิดพลาดระหว่างกระบวนการเข้าสู่ระบบ (ผู้ให้บริการ: ผู้ให้บริการ TCP ข้อผิดพลาด: 0 - การเชื่อมต่อที่สร้างขึ้นถูกยกเลิกโดยซอฟต์แวร์ในเครื่องโฮสต์ของคุณ) (Microsoft SQL Server, ข้อผิดพลาด: 10053)

คุณช่วยบอกฉันหน่อยได้ไหมว่าคุณว่างเมื่อไหร่เพื่อที่เราจะได้ดูเพราะฉันรู้ว่าฉันอยู่ที่ไหนฉันได้แก้ไขรายละเอียดตามที่ UK Fast ส่งให้ฉัน แต่พวกเขาบอกว่า "มันไม่ได้อยู่ในการสนับสนุน" ดังนั้นพวกเขาจึงไม่สามารถช่วยเหลือเพิ่มเติมได้อีก

ฉันหวังว่าจะได้ยินจากคุณ.


คุณลองต่อท้ายหมายเลขพอร์ตเมื่อทำการเชื่อมต่อหรือไม่?

คุณกำลังพยายามเชื่อมต่อกับ "192.168.0.1/SQLEXPRESS" (โดยที่ 192.168.0.1 เป็นที่อยู่ IP ของเซิร์ฟเวอร์ของคุณจริงๆ) หรือคุณไม่ใช้ชื่ออินสแตนซ์
Rowland Shaw

2
คุณใช้ฟอร์เวิร์ดสแลช/แล้วไม่ใช่แบ็กสแลช `` `ใช่หรือไม่?
Aaron Bertrand

คำตอบ:


78

SQL Server IP Address\SQLEXPRESSของคุณจะถูกติดตั้งเป็นชื่ออินสแตนซ์ดังนั้นแรกของทุกคนลองเชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ชื่อเซิร์ฟเวอร์ต่อไปนี้:
เมื่อคุณติดตั้ง SQL Server เป็นชื่ออินสแตนซ์จะใช้พอร์ต TCP / IP แบบไดนามิกตามค่าเริ่มต้นดังนั้นจึงเป็นไปไม่ได้ที่จะเชื่อมต่อกับมันโดยไม่ระบุชื่ออินสแตนซ์ (เพียงที่อยู่ IP) หากคุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์โดยไม่ใช้ชื่ออินสแตนซ์คุณต้องกำหนดค่าเซิร์ฟเวอร์ของคุณใหม่เพื่อใช้พอร์ต TCP แบบคงที่ หากต้องการทำเช่นนั้นโปรดดำเนินการดังต่อไปนี้:

  1. เปิดตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL
  2. สลับไปที่SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. คลิกสองครั้งที่TCP/IPโปรโตคอล
  4. เลือกYesค่าในEnabledฟิลด์;
  5. สลับไปที่IP Addressesแท็บ;
  6. ค้นหาIPAllส่วน;
  7. เคลียร์TCP Dynamic Portsฟิลด์ในส่วนนั้น
  8. ระบุ1433ค่าในTCP Portฟิลด์:
    ป้อนคำอธิบายรูปภาพที่นี่
  9. รีสตาร์ทเซิร์ฟเวอร์ของคุณ
    ลองเชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ที่อยู่ IP ของมัน

7
ขอบคุณที่ให้ข้อมูลนั้นใช้งานได้ดียกเว้นสิ่งหนึ่ง ในสตูดิโอการจัดการ sql ฉันยังต้องให้พอร์ตเพื่อเชื่อมต่อกับเซิร์ฟเวอร์เช่น xxxx \ instance, 1433 ฉันคิดว่ามันแปลก ๆ ตั้งแต่ฉันใช้พอร์ตมาตรฐาน
Tomas Jansson

1
มันใช้งานได้สำหรับฉันยกเว้นตรงข้ามกับสิ่งที่ @TomasJansson รายงาน: ทำงานได้ใน Management Studio ที่ไม่มีหมายเลขพอร์ต แต่ฉันต้องระบุหนึ่งในสตริงการเชื่อมต่อของฉันแม้จะใช้งานพอร์ตเริ่มต้นได้ยาก (1433)
lpacheco

ฉันยังได้คำตอบที่ดีเยี่ยมข้างต้นใน SQL Server 2017 ฉันรู้ว่าคุณไม่สามารถปล่อยให้ฟิลด์รหัสผ่านของผู้ใช้ (โดยเฉพาะ sa) ว่างเปล่า ตรวจสอบให้แน่ใจว่าคุณมีการตั้งค่ารหัสผ่านมิฉะนั้นจะไม่เชื่อมต่อ
aLearner

ใช้ netstat -a -b แล้วค้นหา sqlservr.exe และตรวจสอบให้แน่ใจว่าพอร์ตนั้นเป็น 1433 ไม่ใช่ทุกกรณี คุณจะบ้าไปแล้วอย่างอื่น
jwize

8

คุณควรเปิดใช้งานติดตามปัญหาให้ฉันโดยเปิดใช้งานการติดตามและเริ่มบริการทั้งหมดใหม่

  • แชร์หน่วยความจำ
  • TCP / IP
  • ท่อที่มีชื่อ

การตั้งค่าคอนฟิก SQL Server เนมไปป์


8

การใช้ SQL Server Express 2017 นอกเหนือจากคำตอบข้างต้นเมื่อพยายามเชื่อมต่อโดยใช้พอร์ตให้แน่ใจว่าคุณใช้ไวยากรณ์จุลภาคไม่ใช่ไวยากรณ์ของลำไส้ใหญ่เช่น:

 MyServerName,1433\InstanceName

หลังจากการต่อสู้กับสิ่งที่กล่าวมาข้างต้นสักสองสามชั่วโมงทำตามคำแนะนำทั้งหมดและมันก็ยังไม่ได้เชื่อมต่อฉันใช้สิ่งที่กล่าวมาข้างต้นแทนและมันเชื่อมต่อทันทีผ่าน SQL Server Management Studio จากระยะไกล ก้าวแรกสู่ความสำเร็จ


1
สิ่งนี้แก้ไขได้สำหรับฉัน (ย้ายพอร์ตระหว่างชื่อเซิร์ฟเวอร์และชื่ออินสแตนซ์) การป้อนพอร์ตในตอนท้ายไม่ได้ผล
masospaghetti

1

ฉันสามารถเชื่อมต่อจากระยะไกลโดยระบุหมายเลขพอร์ตแบบไดนามิกอย่างชัดเจนอย่างไรก็ตามนี่ไม่เหมาะ

ฉันปรากฏปัญหาคือบริการ SQL Server Browser ถูกปิดการใช้งาน เมื่อฉันเปิดใช้งานและเริ่มบริการนี้ฉันสามารถเชื่อมต่อจากระยะไกลได้โดยเพียงระบุชื่อโฮสต์และชื่ออินสแตนซ์


0

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

ปุ่ม Run / start อยู่ที่ไหน


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