จะแก้ไขข้อผิดพลาด "ข้อผิดพลาดที่เกี่ยวข้องกับเครือข่ายหรือเฉพาะอินสแตนซ์ที่เกิดขึ้นขณะสร้างการเชื่อมต่อกับ SQL Server" ได้อย่างไร
“ เกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเฉพาะอินสแตนซ์ขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ ตรวจสอบว่าชื่ออินสแตนซ์ถูกต้องและมีการกำหนดค่า SQL Server ให้อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: Named Pipes Provider ข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server) (Microsoft SQL Server ข้อผิดพลาด: 53)”
บทความนี้กล่าวถึงรายการวิธีการแก้ไขปัญหาโดยละเอียดที่สามารถใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ SQL ก่อนอื่นเราจะพูดถึงปัญหาที่เกิดขึ้นเมื่อคุณต้องการ เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลโดยใช้ที่อยู่ IP เนื่องจากเป็นสาเหตุที่พบบ่อยที่สุด ขั้นตอนเหล่านี้เขียนไว้ใน“SQL Server 2008 R2″ บน "Windows 10″แต่สามารถใช้กับเวอร์ชันอื่นได้เช่นกันโดยมีการแก้ไขเล็กน้อย
ข้อผิดพลาดมักจะหมายความว่าไม่พบเซิร์ฟเวอร์ SQL” หรือ "พอร์ต TCP ไม่ทราบหรือผิด”, หรือ สามารถบล็อกได้โดย“ ไฟร์วอลล์”
วิธีที่ 1: รวบรวมข้อมูลเกี่ยวกับอินสแตนซ์ของ SQL Server
ในส่วนนี้เราจะพูดถึงวิธีการตรวจสอบอินสแตนซ์ของไฟล์ เซิร์ฟเวอร์ SQL ใช้งานได้หรือไม่พร้อมวิธีการแก้ไขหากใช้งานไม่ได้
ขั้นตอนที่ 1. ตรวจสอบว่าอินสแตนซ์ของ SQL Server ได้รับการติดตั้งและใช้งานได้หรือไม่
ก่อนอื่นให้ล็อกอินเข้าสู่คอมพิวเตอร์ที่โฮสต์อินสแตนซ์เซิร์ฟเวอร์ SQL ตอนนี้ทำตามขั้นตอนเหล่านี้เพื่อเปิดบริการใน Windows
- คลิกที่ "เมนูเริ่มต้น" แล้วชี้ไปที่ "ทุกโปรแกรม".
- ตอนนี้ชี้ไปที่ SQL Server แล้วชี้ไปที่ “ เครื่องมือกำหนดค่า”
- คลิก “ ตัวจัดการการตั้งค่าคอนฟิกเซิร์ฟเวอร์ SQL”.
- ตอนนี้เลือก “ บริการ SQL Server” และตรวจสอบในบานหน้าต่างด้านขวาว่าอินสแตนซ์ของเครื่องมือฐานข้อมูลกำลังทำงานอยู่หรือไม่
- นอกจากนี้ยังสามารถเปิดได้โดยตรงโดยการพิมพ์ “ services.msc” ใน วิ่ง แล้วคลิก ตกลง. หน้าจอต่อไปนี้จะปรากฏขึ้น
ตอนนี้ตรวจสอบว่าเอ็นจินฐานข้อมูลได้รับการกำหนดค่าให้ยอมรับการเชื่อมต่อระยะไกลหรือไม่ ในการตรวจสอบให้ทำตามขั้นตอนต่อไปนี้
- หลังจากเปิดบริการแล้วคุณจะเห็นเครื่องมือฐานข้อมูลในบานหน้าต่างด้านขวา “ MSSQLSERVER” เป็นอินสแตนซ์ที่ไม่มีชื่อเริ่มต้น อินสแตนซ์เริ่มต้นสามารถเป็นได้เพียงอินสแตนซ์เดียว
- ในกรณีของ “ SQL Express” อินสแตนซ์เริ่มต้นจะเป็น “ SQLEXPRESS” เว้นแต่จะมีใครบางคนเปลี่ยนชื่อในระหว่างการติดตั้ง
- ตรวจสอบว่าอินสแตนซ์ที่คุณพยายามเชื่อมต่อมีชื่อเดียวกับที่ระบุในบริการหรือไม่
- นอกจากนี้ตรวจสอบว่าสถานะของอินสแตนซ์เป็นหรือไม่ "วิ่ง".
- ยิ่งไปกว่านั้นหากคุณกำลังพยายามเชื่อมต่อกับชื่อทันทีให้ตรวจสอบอีกครั้งว่า “ บริการ SQL Server Browser” กำลังทำงานอยู่ ดังนั้นคุณต้องตรวจสอบว่าไฟล์ “ บริการ SQL Server Browser” เริ่มทำงานบนเซิร์ฟเวอร์ที่ติดตั้ง SQL Server
- ในกรณีที่เอ็นจินฐานข้อมูลไม่ทำงานคุณต้องรีสตาร์ท ดังนั้นในการเริ่มต้นไฟล์ “ เครื่องมือฐานข้อมูล”ในบานหน้าต่างด้านขวาคลิกขวาที่ไฟล์ “ Database Engine” (ค่าเริ่มต้น“ MSSQLSERVER”)แล้วคลิก “ เริ่ม”.
ขั้นตอนที่ 2. รับที่อยู่ IP ของคอมพิวเตอร์
ให้ทำตามขั้นตอนต่อไปนี้
- ก่อนอื่นจากเมนูเริ่มคลิก "วิ่ง" และพิมพ์ “ cmd” แล้วกด ตกลง.
- ใน พร้อมรับคำสั่ง ประเภทหน้าต่าง “ ipconfig” และจดบันทึก IPV4 และ ที่อยู่ IPV6. คนส่วนใหญ่ใช้ ที่อยู่ IPV4
ขั้นตอนที่ 3. รับหมายเลขพอร์ต TCP ที่ใช้โดยเซิร์ฟเวอร์ SQL
ทำตามขั้นตอนต่อไปนี้เพื่อรับหมายเลขพอร์ต TCP ที่ใช้โดยเซิร์ฟเวอร์ SQL
- การใช้ “ สตูดิโอจัดการเซิร์ฟเวอร์ SQL” (SSMS) เชื่อมต่อกับอินสแตนซ์ของเซิร์ฟเวอร์ SQL
- จาก “ นักสำรวจวัตถุ” ขยาย “ การจัดการ”, ขยาย “ บันทึกเซิร์ฟเวอร์ SQL” และคลิกที่บันทึกปัจจุบันที่คุณต้องใช้ตัวกรอง
- ในการใช้ filer คลิกใช้ตัวกรองและพิมพ์ ” เซิร์ฟเวอร์กำลังฟังอยู่” ในข้อความมีกล่องข้อความ คลิกใช้ตัวกรองแล้วกดตกลง
- ข้อความเช่น “ เซิร์ฟเวอร์กำลังฟัง ["ใด ๆ "
1433]” ควรจะแสดง ข้อความแสดงว่าอินสแตนซ์ SQL Server กำลังรับฟังบนคอมพิวเตอร์ทุกเครื่องที่มี ที่อยู่ IP IPv4 และ พอร์ต TCP คือ1433 (ค่าเริ่มต้น). - สำหรับพอร์ต TCP มากกว่าหนึ่งอินสแตนซ์จะแตกต่างกันไปสำหรับแต่ละอินสแตนซ์
- หากไม่ใช่กรณีให้คลิก "ทุกโปรแกรม"ชี้ไปที่เครื่องมือกำหนดค่าเซิร์ฟเวอร์ MS SQL “ การจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL” แล้วคลิกขวา “ TCP \ IP” และคลิกเปิดใช้งานและรีสตาร์ทเซิร์ฟเวอร์ SQL เพื่อให้การเปลี่ยนแปลงสร้างผลกระทบ
วิธีที่ 2: การเปิดใช้งานโปรโตคอลสำหรับพอร์ต 1433
กำลังเชื่อมต่อกับไฟล์ “ เครื่องมือฐานข้อมูล” จากคอมพิวเตอร์เครื่องอื่นไม่ได้รับอนุญาตในหลาย ๆ “ เซิร์ฟเวอร์ SQL” การใช้งานเว้นแต่ผู้ดูแลระบบจะใช้ “ เครื่องมือจัดการการกำหนดค่า” เพื่ออนุญาต ควรทำตามขั้นตอนต่อไปนี้เพื่อดำเนินการนี้
- คลิกที่ "เมนูเริ่มต้น" แล้วชี้ไปที่ "ทุกโปรแกรม"
- ชี้ไปที่ “ SQL Server 2008 R2”
- ชี้ไปที่ “ เครื่องมือกำหนดค่า”และหลังจากคลิกนี้ “ ตัวจัดการการตั้งค่าคอนฟิกเซิร์ฟเวอร์ SQL”.
- ขยาย“การกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL”
- เลือก“โปรโตคอล สำหรับเซิร์ฟเวอร์ MSSQL”. คลิกที่ “ TCP \ IP” ในแผงด้านขวา
- ในแท็บ "มาตรการ" ตั้งค่าเปิดใช้งานเป็น "ใช่".
- เลือก “ แท็บที่อยู่ IP” จากหน้าต่างและตั้งค่า“พอร์ต TCP” เท่ากับ "1433″ ใน “ IP ทั้งหมด” รายการ.
- ตอนนี้รีสตาร์ทเอ็นจินฐานข้อมูลเพื่อทำการเปลี่ยนแปลงออกจากผลกระทบ ในการดำเนินการนี้จากบานหน้าต่างด้านซ้ายให้เลือกบริการเซิร์ฟเวอร์ SQL จากนั้นจากบานหน้าต่างด้านขวาคลิกขวาที่อินสแตนซ์เครื่องมือฐานข้อมูลแล้วกด "เริ่มต้นใหม่".
วิธีที่ 3: สร้างข้อยกเว้นไฟร์วอลล์
บางครั้งไฟร์วอลล์ Windows จะเปิดและบล็อกลิงก์จากคอมพิวเตอร์เครื่องอื่น ในการแก้ไขให้ทำตามขั้นตอนต่อไปนี้
- คลิก "เริ่ม" และเริ่มพิมพ์ “ Firewall.cpl” ในกล่องเรียกใช้
- คุณจะได้รับ "กรอบการกำหนดค่า" สำหรับ Windows Firewall โดยเรียกใช้ไฟล์ “ firewall.cpl” คำสั่ง คุณอาจเปิดไฟร์วอลล์ "เปิดปิด" โดยมีการใช้ข้อยกเว้นและการตั้งค่าอื่น ๆ ที่นี่ ตรวจสอบสถานะไฟร์วอลล์และเปิดเพื่อเปิดใช้งานหากไฟร์วอลล์ปิดอยู่ หากคุณเพิ่งเปิดใช้งานไฟร์วอลล์ของคุณจะบล็อกคำขอเชื่อมต่อ“ SQL Server” กับคอมพิวเตอร์ของคุณ ณ จุดนี้ คุณจะต้องกำหนดค่าไฟร์วอลล์เพื่ออนุญาตการเข้าถึงเอ็นจินฐานข้อมูล SQL Server ด้วยการสร้างข้อยกเว้นบางประการ
- คลิกที่ "การตั้งค่าขั้นสูง"
- เราจำเป็นต้องเรียนรู้เกี่ยวกับพอร์ตที่ใช้สำหรับ“เซิร์ฟเวอร์ SQL" และ "เบราว์เซอร์เซิร์ฟเวอร์ SQL” เมื่อจัดการกับการกำหนดค่าไฟร์วอลล์“ SQL Server” ทั้งสองมีส่วนร่วมในการจัดตั้ง“ไฟร์วอลล์” สำหรับ “ เซิร์ฟเวอร์ SQL” . ดังนั้นจึงจำเป็นต้องแยกแนวคิดทั้งสองอย่างแยกกัน
- คุณอาจอนุญาตหรือบล็อกการพยายามรับส่งข้อมูลที่เป็นไปตามข้อกำหนดในกฎในการเข้าถึงคอมพิวเตอร์ โดยค่าเริ่มต้น “ ขาเข้าการจราจร” ถูกบล็อกคุณต้องสร้าง“ ขาเข้ากฎ” เพื่อให้การรับส่งข้อมูลเข้าถึงคอมพิวเตอร์ แตะกฎขาเข้าจากบานหน้าต่างด้านซ้ายของไฟล์ “ Windows Firewall พร้อมขั้นสูงความปลอดภัย” แล้วคลิกกฎใหม่จากไฟล์“ การดำเนินการ” หน้าต่าง.
- เลือก“ท่าเรือ” ภายใต้“กฎประเภท” แล้วกด “ต่อไป" ปุ่ม
- ตอนนี้เลือก “ พอร์ตในพื้นที่เฉพาะ” และตั้งค่าเป็น 1433
- ตอนนี้เลือก “ อนุญาตการเชื่อมต่อ” ใน"หนังบู๊" โต้ตอบและกดปุ่มถัดไป
- ให้กฎ a “หัวข้อ" บนเวทีนี้แล้วกดปุ่ม“เสร็จสิ้น" ปุ่ม.
- เลือก“กฎที่กำหนดเอง” จาก “ กฎใหม่” แท็บ
- คลิก “ ปรับแต่ง”
- เลือก“อินสแตนซ์ของ Database Engineบริการ" จาก “ ปรับแต่งบริการการตั้งค่า” ภายใต้“ นำไปใช้กับสิ่งนี้ บริการ"แล้วคลิกไฟล์"ตกลง" ปุ่ม
- ตั้งชื่อกฎแล้วคลิกเสร็จสิ้น
- นอกจากนี้ยังเพิ่ม “ sqlservr.exe” โดยทั่วไปจะอยู่ใน “ C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL.x \ MSSQL \ Bin” (หรือตรวจสอบเส้นทางโฟลเดอร์จริงของคุณ) ไปยังเส้นทางตรวจสอบการติดตั้งของคุณสำหรับเส้นทางโฟลเดอร์จริง) และพอร์ตที่มีค่าเริ่มต้นคือ “1433”. ตรวจสอบสตริงการเชื่อมต่อของคุณด้วย
วิธีที่ 4: ตรวจสอบการเชื่อมต่อภายใน
สาเหตุหนึ่งของข้อผิดพลาดนี้คือหากเราระบุชื่อเซิร์ฟเวอร์ผิดจะทำให้เกิดข้อผิดพลาด ดังที่เห็นในรูปด้านล่างชื่อเซิร์ฟเวอร์ที่ระบุคือ “ เดสก์ท็อป UD88TLT1” ในขณะที่ชื่อเซิร์ฟเวอร์ที่ถูกต้องคือ “ เดสก์ท็อป - UD88TLT”. ดังนั้นจะไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ซึ่งจะส่งผลให้เกิดข้อผิดพลาด “ ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์”. นี่เป็นสาเหตุพื้นฐานที่สุดสำหรับข้อผิดพลาดดังนั้นเราควรตรวจสอบก่อนว่าทำงานในพื้นที่หรือไม่
ข้อผิดพลาดเกิดขึ้นขณะเชื่อมต่อกับเซิร์ฟเวอร์ SQL ภายในเครื่องด้วยชื่อเซิร์ฟเวอร์ที่ไม่ถูกต้องในกรณีที่คุณใช้ express edition ตามชื่อเซิร์ฟเวอร์ของคุณให้เพิ่ม “ \ SQLEXPRESS” ดังที่เห็นในรูปด้านล่าง