ฉันไม่สามารถเชื่อมต่อกับ SQL Server 2008 ในพื้นที่ของฉันได้หรือไม่


18

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

ในกล่องโต้ตอบเชื่อมต่อฉันกำลังเขียน:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

คำถามแรกของฉันคือถ้าเป็นสิ่งที่ฉันควรเชื่อมต่อ? เมื่อฉันพยายามเชื่อมต่อฉันได้รับข้อความแสดงข้อผิดพลาดนี้:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

A network-related or instance-specific error occurred while establishing a connection
to SQL Server. The server was not found or was not accessible. Verify that the instance 
name is correct and that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

ฉันไปที่ URL ที่ปรากฏขึ้นและมันก็บอกว่า "ต้องแน่ใจว่าเซิร์ฟเวอร์ SQL กำลังทำงานอยู่" ฉันคิดว่ามันเป็น แต่ฉันไม่แน่ใจทั้งหมด

ฉันปิดการใช้งานไฟร์วอลล์ Windows (นี่คือ Windows 7 7100 x86) ฉันได้เปลี่ยนระบบเข้าสู่ระบบในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL แต่ดูเหมือนว่ามันไม่ใช่ปัญหาของการเข้าสู่ระบบ แต่ไม่สามารถเปิดซ็อกเก็ตได้ ในเครื่องมือเดียวกันนั้นฉันได้เปิดใช้งานโปรโตคอลทั้งหมดใน "การกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL" -> "โปรโตคอลสำหรับ SQLEXPRESS" โดยไม่มีโชค ฉันหมดความคิด ฉันจะลองทำอะไรอีก


เสียงเหมือนคำตอบที่แท้จริงนี่คือตัวอย่างที่มีชื่อ . \ SqlExpress dot หมายถึง localhost และ \ SqlExpress เป็นอินสแตนซ์ที่คุณต้องการเชื่อมต่อ สำหรับผู้ที่ไม่ทราบว่าคุณสามารถมี SQL Server ได้มากกว่าหนึ่งเครื่อง Sql Express ในกรณีนี้เป็นเพียงชื่อแทนที่จะเป็นตัวบ่งชี้ที่เข้มงวดของประเภทหรือรูปแบบที่เข้มงวดของผลิตภัณฑ์
p.campbell

คำตอบ:


23

ตกลงคุณสามารถเปิดคอนโซลบริการของคุณและเลื่อนลงไปที่ S สำหรับ SQL Server ตอนนี้คุณควรเห็นบริการ โปรดตรวจสอบให้แน่ใจว่า SQL Server (SQLEXPRESS) กำลังทำงานอยู่จากนั้นลอง \ SQLEXPRESS แทน (ภายในเครื่อง)

ดังนั้นตามตัวอย่างของคุณ:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

หวังว่านี่จะช่วยได้

อัปเดต: คำแนะนำเหล่านี้เป็นเพราะฉันถือว่าคุณใช้ Express Edition ไม่ใช่รุ่น Dev / Std / Ent ของ SQL Server


ลองตรวจสอบให้แน่ใจว่าเปิดใช้งานโปรโตคอลที่เหมาะสมแล้ว:

  1. เริ่มตัวจัดการการกำหนดค่า SQL (เช่น: Start-> Programs-> SQL Server-> เครื่องมือกำหนดค่า)
  2. ขยายการกำหนดค่าไคลเอ็นต์ดั้งเดิมของ SQL
  3. คลิกไคลเอนต์โปรโตคอล (คุณอาจมี 32- บิตและ 64- บิตนำไปใช้กับทั้งสอง)
  4. ตรวจสอบให้แน่ใจว่ามีการเปิดใช้งานหน่วยความจำที่แชร์, TCP / IP, เนมไปป์ตามลำดับนั้น
  5. ขยายการกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL
  6. ตรวจสอบให้แน่ใจหน่วยความจำที่แชร์สำหรับ SQLEXPRESS และ / หรือ MSSQLSERVER เปิดใช้งาน
  7. คลิกบริการเซิร์ฟเวอร์ SQL
  8. เริ่มบริการที่ทำงานอยู่ใด ๆ

ตอนนี้คุณควรจะสามารถลงชื่อเข้าใช้อินสแตนซ์ได้


หากคุณพบว่าคุณไม่สามารถเข้าสู่ระบบได้เลยคุณอาจต้องทำตามคำแนะนำเหล่านี้เพื่อให้ SQL Server เข้าสู่โหมดผู้ใช้คนเดียว ดูที่นี่สำหรับคำแนะนำทั้งหมดจาก Microsoft

โดยค่าเริ่มต้น sqlservr.exe จะอยู่ที่ C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn หากมีการติดตั้งอินสแตนซ์ที่สองของ SQL Server สำเนาที่สองของ sqlservr.exe จะอยู่ในไดเรกทอรีเช่น

C: \ Program Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn SQL Server \ MSSQL10

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

เพื่อหลีกเลี่ยงปัญหานี้ให้ใช้คำสั่งการเปลี่ยนไดเรกทอรี MS-DOS (cd) เพื่อย้ายไปยังไดเรกทอรีที่ถูกต้องก่อนเริ่ม sqlservr.exe ดังที่แสดงในตัวอย่างต่อไปนี้

Server \ MSSQL10_50.1 \ MSSQL \ Binn SQL Files \ Microsoft cd \ Program

ในการเริ่มต้นอินสแตนซ์เริ่มต้นของ SQL Server ในโหมดผู้ใช้คนเดียวจากพรอมต์คำสั่ง

จากพรอมต์คำสั่งป้อนคำสั่งต่อไปนี้:

sqlservr.exe -m

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

ตอนนี้คุณควรจะสามารถลงชื่อเข้าใช้อินสแตนซ์และเพิ่มตัวเองลงในแท็บความปลอดภัยและให้สิทธิ์การเข้าถึงแบบเต็ม

วิธีอื่น:

มีสคริปต์ที่นี่ที่อ้างว่าเพิ่มผู้ใช้ปัจจุบันไปยังบทบาทดูแลระบบ SQL Server สิ่งนี้อาจทำงานในโหมดผู้ใช้คนเดียว แต่ฉันยังไม่ได้ตรวจสอบ


Services Console เป็นแท็บ Services ใน Windows Task Manager หรือไม่ (Win7) อย่างไรก็ตาม SQLEXPRESS ไม่ได้อยู่ที่นั่นฉันจะรันได้อย่างไร
pupeno

1
คอนโซลบริการเป็น start-> แผงควบคุม -> เครื่องมือการดูแลระบบ
Wayne

ไม่เป็นไรฉันพบคอนโซลบริการแล้ว SQLEXPRESS กำลังทำงานอยู่
pupeno

กำลังเชื่อมต่อกับ \ SQLEXPRESS ได้หลอกลวง ขอบคุณมากเวย์น!
pupeno

1
ขอบคุณมาก ... กำลังบ้าที่จะพยายามคิดออก! (หมายเหตุถึงผู้อื่นใน ". \ SQLEXPRESS" ... "SQLEXPRESS" เป็นอินสแตนซ์ Id ที่คุณให้เซิร์ฟเวอร์ระหว่างการติดตั้ง
RiddlerDev

0

(ในระบบ) แก้ไขเป็น 127.0.0.1 และใช้งานได้เฉพาะค่าเริ่มต้นเท่านั้น อินสแตนซ์เช่นค่าเริ่มต้นสำหรับ SQL Server Express จำเป็นต้องใช้ชื่อจริง โปรดทราบว่าคุณสามารถตรวจสอบบันทึกข้อผิดพลาดสำหรับ SQL Server (โฟลเดอร์การติดตั้ง SQL จากนั้นบันทึก) และหนึ่งในสองสามรายการแรกจะให้ IP, พอร์ตและชื่อของอินสแตนซ์

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

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