ไม่มีกระบวนการอยู่ที่ปลายอีกด้านของไปป์ (SQL Server 2012)


96

ฉันพบข้อผิดพลาดนี้:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

ฉันรู้ว่ามีคำถามที่คล้ายกันในไซต์นี้และคำตอบคือการเปิดใช้งาน TCP / IP และไปป์ แต่ฉันเปิดใช้งานทั้งสองอย่าง แต่ก็ยังใช้งานไม่ได้:

ข้อผิดพลาด MSSQL

ฉันใช้ Microsoft SQL Server 2012 และผู้ใช้มีสิทธิ์แบบเต็ม


ลองใช้โซลูชัน pinal dave blog.sqlauthority.com/2009/05/21/…
GeoVIP

สิ่งนี้ใช้ได้ผลสำหรับฉันเมื่อฉันเชื่อมต่อใหม่จากการตรวจสอบเซิร์ฟเวอร์ไปเป็นการรับรองความถูกต้องของ Windows
ganji raajkumar

1
สิ่งที่ใช้ได้ผลสำหรับฉัน (sql express 2016) ... การลบการรับรองความถูกต้องแบบผสมออกจาก windows auth เริ่มบริการใหม่เปลี่ยนกลับเป็นการรับรองความถูกต้องแบบผสมเริ่มบริการใหม่ จนกระทั่งฉันไม่ได้แก้ไขข้อผิดพลาดของกระบวนการ No
Rostol

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

ไม่ได้ผลสำหรับฉันเช่นกัน
แซม

คำตอบ:


126

เซิร์ฟเวอร์ถูกตั้งค่าเป็น Windows Authentication ตามค่าเริ่มต้นเท่านั้น ไม่มีการแจ้งเตือนใด ๆ ว่าต้นกำเนิดของข้อผิดพลาดเป็นเช่นนั้นดังนั้นจึงยากที่จะเข้าใจ สตูดิโอการจัดการ SQL ไม่แจ้งเตือนแม้ว่าคุณจะสร้างผู้ใช้ด้วย SQL Authentication เท่านั้น

ดังนั้นคำตอบคือ: เปลี่ยนจาก Windows เป็น SQL Authentication :

  1. คลิกขวาที่ชื่อเซิร์ฟเวอร์และเลือกproperties;
  2. เลือกsecurityแท็บ;
  3. เปิดใช้งานSQL Server and Windows Authentication mode;
  4. เริ่มบริการ SQL Server ใหม่

ตอนนี้คุณสามารถเชื่อมต่อกับล็อกอิน / รหัสผ่านของคุณได้แล้ว


5
ตัวเลือกได้รับการตรวจสอบอย่างถูกต้องดังนั้นฉันจึงเลือก 'Windows Authentication' ฉันเริ่มบริการใหม่จากนั้นตรวจสอบ 'Windows Authentication + SQL Authentication' เพื่อแก้ไขปัญหา มีความสุขมาก!
Groco

2
ชี้แจง @ ความคิดเห็นของ Groco: เข้าสู่ระบบโดยใช้Windows Authentication>> คลิกขวาที่เซิร์ฟเวอร์ของคุณ >> Properties>> Security(ใต้Select a page) >> ภายใต้เลือกServer Authentication SQL Server and Windows Authentication modeปิด SQL Server Management Studio เริ่มบริการ SQL Server ใหม่แล้วลองเข้าสู่ระบบอีกครั้ง
Minh Tran

1
ปัญหาที่ผมมีคือการที่ถูกกำหนดให้Server Authentication และไม่คำนึงถึงใส่รหัสผ่านที่ถูกต้องผมได้รับการต้อนรับเสมอกับWindows Authentication mode A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)ตลอดข้อผิดพลาดฉันสามารถเข้าสู่ระบบโดยใช้Windows Authentication
Minh Tran

ขอบคุณมาก. เริ่มบริการ Sql อีกครั้งเพื่อแก้ไขปัญหาของฉัน
user1282609

58

ในการแก้ปัญหานี้ให้เชื่อมต่อกับ SQL Management Studio โดยใช้ Windows Authentication จากนั้นคลิกขวาที่คุณสมบัติโหนดเซิร์ฟเวอร์ -> ความปลอดภัยและเปิดใช้งานโหมด SQL Server และ Windows Authentication หากคุณใช้ "sa" ให้ตรวจสอบว่าเปิดใช้งานบัญชีแล้ว ในการดำเนินการนี้ให้เปิด 'sa' ภายใต้การเข้าสู่ระบบและดูสถานะ

เปิดใช้งานผู้ดูแลระบบ

หากไม่ได้ผลคุณอาจต้องติดตั้ง SQL Server ใหม่


หลังจากทำสิ่งนี้ให้รีสตาร์ท SQL Server แล้วลองเข้าสู่ระบบ
Webucator

27

นอกจากนี้คุณสามารถลองไปที่บริการและรีสตาร์ทอินสแตนซ์เซิร์ฟเวอร์ Sql ของคุณป้อนคำอธิบายภาพที่นี่


3
สิ่งนี้ช่วยแก้ปัญหาของฉันได้หลังจากลองแก้ไขอื่น ๆ ทั้งหมดแล้ว
mini998

1
เอ่อสิ่งนี้ไม่ควรมาพร้อมกับป้ายเตือนขนาดใหญ่ว่าการรีสตาร์ทบริการเซิร์ฟเวอร์ sql เพียงเพราะคุณไม่สามารถเชื่อมต่อได้จะทำให้สิ่งอื่น ๆ ที่เชื่อมต่อสำเร็จหรือไม่?
undrline

สิ่งนี้ได้ผลดีสำหรับฉัน ฉันเห็นว่ามันง่ายแค่ไหนที่ผู้คนจะละเลยการพิจารณาวิธีแก้ปัญหานี้
TechnicalTim

19

ดังนั้นเมื่อเร็ว ๆ นี้ฉันมีสิ่งนี้เช่นกันสำหรับความปลอดภัยแบบบูรณาการปรากฎว่าปัญหาของฉันค่อนข้างง่ายในการแก้ไข แต่ส่วนใหญ่เป็นเพราะฉันลืมเพิ่ม"Trusted_Connection = True"ลงในสตริงการเชื่อมต่อของฉัน

ฉันรู้ว่ามันอาจดูค่อนข้างชัดเจน แต่ให้ฉันใช้เวลาประมาณ 20 นาทีจนกระทั่งฉันรู้ว่าฉันได้คัดลอกรูปแบบสตริงการเชื่อมต่อของฉันจากconnectionstrings.comและสตริงการเชื่อมต่อนั้นหายไป

เรียบง่ายและฉันรู้สึกบ้าไปหน่อย แต่มันเป็นคำตอบสำหรับฉัน


ฉันพยายามแสดงความคิดเห็นทั้งหมด แต่ไม่ได้ผล โซลูชันของคุณทำงานได้ดีสำหรับฉัน ขอบคุณมาก.
Royal.O

นี่เป็นสิ่งสุดท้ายที่ฉันลองหลังจากเปิดใช้งานการตรวจสอบ tcp อื่น ๆ ทั้งหมดเพิ่มการตรวจสอบโหมดผสมและเริ่มบริการเบราว์เซอร์ sql ใหม่และใช้งานได้ ขอบคุณ
Myke Black

10

สาเหตุอีกประการหนึ่งสำหรับข้อผิดพลาดนี้อาจเป็นชื่อฐานข้อมูลที่ไม่ถูกต้องหรือไม่มีอยู่จริง

การบังคับให้เชื่อมต่อ TCP / IP (โดยการให้127.0.0.1แทนlocalhostหรือ.) สามารถเปิดเผยสาเหตุที่แท้จริงของข้อผิดพลาดได้ ในกรณีของฉันชื่อฐานข้อมูลที่ระบุในสตริงการเชื่อมต่อไม่ถูกต้อง

ดังนั้นนี่คือรายการตรวจสอบ:

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

เกิดอะไรขึ้นกับตัวจัดการการกำหนดค่าใน Express 2016 ไม่เห็นมีให้? โอ้ฉันต้องเรียกใช้ SQLServerManager13.msc เดี๋ยวนี้
Kirsten Greed

เมื่อฉันเปลี่ยนเป็น 127.0.0.1 ฉันได้รับข้อความแสดงข้อผิดพลาด Message = เกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเฉพาะอินสแตนซ์ขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ ตรวจสอบว่าชื่ออินสแตนซ์ถูกต้องและมีการกำหนดค่า SQL Server ให้อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: SQL Network Interfaces, error: 26 - Error Locating Server / Instance Specified) Source = Core .Net SqlClient Data Provider
Kirsten Greed

1
@kirsteng ตรวจสอบอินสแตนซ์ SQL Server ที่ติดตั้งไว้ คุณติดตั้งอินสแตนซ์เริ่มต้น (MSSQLSERVER) หรือไม่
Mohammad Dehghan

การรับรองความถูกต้องของเซิร์ฟเวอร์ SQL ในโหมดผสมทำเพื่อฉัน หากคุณทำการติดตั้ง SQL Server Express ใหม่เมื่อคุณต้องการเพิ่มผู้ใช้สำหรับความต้องการในการจัดเตรียมคุณจะต้องเปลี่ยนเป็นโหมดผสมมิฉะนั้นจะมีเพียงการตรวจสอบสิทธิ์ Windows เท่านั้น
Eduardo

สิ่งนี้ได้ผล เมื่อฉันเปลี่ยนเรื่องไร้สาระ localdb เป็น 127.0.0.1 มันก็ผ่าน
Eric


8

หากคุณกำลังพยายามเข้าสู่ระบบด้วยข้อมูลประจำตัวของ SQL คุณสามารถลองเปลี่ยน LoginMode สำหรับ SQL Server ในรีจิสทรีเพื่ออนุญาตทั้ง SQL Server และ Windows Authentication

  1. เปิด regedit
  2. ไปที่คีย์อินสแตนซ์ SQL (อาจแตกต่างกันไปขึ้นอยู่กับชื่ออินสแตนซ์ของคุณ): Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. ตั้งค่า LoginMode เป็น 2

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

  1. เริ่มบริการ SQL และ Studio จัดการเซิร์ฟเวอร์ SQL ใหม่แล้วลองอีกครั้ง

นี่คือคำตอบที่เหมาะสมที่สุด
sushh

ทำงานอย่างมีเสน่ห์!
Asim

5

ฉันประสบปัญหานี้เป็นครั้งที่สองและคำตอบก่อนหน้านี้ทั้งหมดล้มเหลวโชคดีที่คำขอต่อไปนี้ทำงานได้:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go

4

สำหรับฉันรหัสผ่านหมดอายุสำหรับผู้ใช้ล็อกอินของฉันและฉันได้รับข้อยกเว้นเหมือนกัน จากนั้นฉันเข้าสู่ระบบด้วยโหมด Windows Authentication และเปลี่ยนรหัสผ่านสำหรับผู้ใช้ที่เกี่ยวข้องและมันก็ช่วยแก้ปัญหาของฉันได้


คุณช่วยวันของฉัน !!
ผู้เรียน

3

หากมีข้อผิดพลาดนี้เช่นกันสาเหตุนั้นง่าย แต่ไม่ชัดเจน: รหัสผ่านไม่ถูกต้อง ไม่แน่ใจว่าทำไมฉันไม่ได้รับเพียงแค่ "การเข้าสู่ระบบล้มเหลว" จากเซิร์ฟเวอร์ SQL 2016 ที่เพิ่งติดตั้งใหม่


3

ใช่ข้อผิดพลาดนี้อาจเป็น "บางอย่างล้มเหลวโชคดีที่พบว่าอะไร" - ในกรณีของฉันมันเป็นชื่อผู้ใช้ที่ไม่ถูกต้อง SQL Server 2019 RC1.0


2

ฉันมี proplem เดียวกัน "สร้างการเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จแล้ว แต่แล้วเกิดข้อผิดพลาดระหว่างกระบวนการเข้าสู่ระบบ (ผู้ให้บริการ: ผู้ให้บริการหน่วยความจำที่ใช้ร่วมกันข้อผิดพลาด: 0 - ไม่มีกระบวนการอยู่ที่ปลายอีกด้านหนึ่งของท่อ)"

การเชื่อมต่อของฉันคือ:

เซิร์ฟเวอร์ = POS06 \ SQLEXPRESS; AttachDbFilename = C: ... \ Datas.mdf; แคตตาล็อกเริ่มต้น = ข้อมูล; รหัสผู้ใช้ = sa; Pwd = 12345; เชื่อมต่อหมดเวลา = 10;

แต่ SQL ของฉันคือ POS06 \ MSQL2014

เปลี่ยนสตริงการเชื่อมต่อเป็น

เซิร์ฟเวอร์ = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; แคตตาล็อกเริ่มต้น = ข้อมูล; รหัสผู้ใช้ = sa; Pwd = 12345; เชื่อมต่อหมดเวลา = 10;

มันได้ผล


0

ตรวจสอบให้แน่ใจว่าคุณได้ระบุผู้ใช้ในการรักษาความปลอดภัย -> การเข้าสู่ระบบหากไม่มี - เพิ่มแล้วลองอีกครั้ง


0

ทำตามคำตอบอื่น ๆ และหากยังไม่ทำงานให้รีสตาร์ทคอมพิวเตอร์เพื่อเริ่มบริการ SQL Server บน Windows ใหม่อย่างมีประสิทธิภาพ


คุณสามารถรีสตาร์ทบริการ SQL สำหรับฐานข้อมูลเฉพาะของคุณได้โดยค้นหาในservices.msc
Zimano

0

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

ภาพหน้าจอ

รหัสผ่านหมดอายุไปแล้วแม้ว่าการเข้าสู่ระบบจะถูกสร้างขึ้นก่อนไม่กี่นาที อย่างไรก็ตามชุดรหัสผ่านใหม่สตริงการเชื่อมต่ออัปเดตแล้วและทุกอย่างเรียบร้อยดี

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