วิธีการเชื่อมต่อกับอินสแตนซ์ในเครื่องของ SQL Server 2008 Express


222

ฉันเพิ่งติดตั้ง SQL Server 2008 Express บนเครื่อง Vista SP1 ของฉัน ก่อนหน้านี้ฉันมีปี 2005 ที่นี่และใช้งานได้ดีกับ SQL Server Management Studio Express เก่า ฉันสามารถเชื่อมต่อได้โดยไม่มีปัญหากับอินสแตนซ์ PC-NAME \ SQLEXPRESS ของฉัน (ไม่ PC-NAME ไม่ใช่ชื่อคอมพิวเตอร์ของฉัน ;-)

ฉันถอนการติดตั้ง 2005 และ SQL Server Management Studio Express ฉันติดตั้ง SQL Server 2008 Express บนเครื่องของฉันและเลือกที่จะให้ติดตั้ง SQL Server Management Studio Basic

ตอนนี้เมื่อฉันพยายามเชื่อมต่อกับ PC-NAME \ SQLEXPRESS (ด้วยการพิสูจน์ตัวจริงของ Windows เหมือนที่ฉันทำเสมอ) ฉันได้รับข้อความต่อไปนี้:

ไม่สามารถเชื่อมต่อกับ PC-NAME \ SQLEXPRESS ข้อผิดพลาดเกี่ยวกับเครือข่ายหรือข้อผิดพลาดเฉพาะของอินสแตนซ์เกิดขึ้นขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ ตรวจสอบว่าชื่ออินสแตนซ์ถูกต้องและมีการกำหนดค่า SQL Server เพื่ออนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: อินเทอร์เฟซเครือข่าย SQL ข้อผิดพลาด: 26 - ข้อผิดพลาดการค้นหาเซิร์ฟเวอร์ / อินสแตนซ์ที่ระบุ) (Microsoft SQL Server, ข้อผิดพลาด: -1) สำหรับความช่วยเหลือคลิก: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL + Server & EvtSrc = MSSQLServer และ EvtID = -1 และ LinkId = 20476

เมื่อฉันติดตั้ง SQL Server 2008 ฉันได้ใช้ SQLEXPRESS เป็นชื่ออินสแตนซ์ในเครื่อง เท่าที่ฉันสามารถบอกได้ผ่าน SQL Server Configuration Manager, SQL Server ได้รับการกำหนดค่าให้อนุญาตการเชื่อมต่อระยะไกล

เมื่อฉันไปที่ลิงก์ความช่วยเหลือมันกล่าวถึงหน้าความช่วยเหลือจะแนะนำสิ่งต่อไปนี้:

  • ตรวจสอบให้แน่ใจว่าบริการ SQL Server Browser เริ่มต้นบนเซิร์ฟเวอร์
  • ใช้เครื่องมือการกำหนดค่าพื้นที่ผิวของเซิร์ฟเวอร์ SQL เพื่อเปิดใช้งาน SQL Server เพื่อยอมรับการเชื่อมต่อระยะไกล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือการกำหนดค่าพื้นที่ผิวของเซิร์ฟเวอร์ SQL ให้ดูที่การกำหนดค่าพื้นที่ใช้งานสำหรับบริการและการเชื่อมต่อ

เท่าที่ฉันสามารถบอกได้ก็คือไม่มีบริการ SQL Server Browser บนระบบของฉัน (ดูที่ MMC สำหรับบริการหนึ่งหาไม่พบ)

และเครื่องมือการกำหนดค่าพื้นที่ผิวของเซิร์ฟเวอร์ SQL ไม่มีอยู่ใน SQL Server 2008 ดังนั้นคุณสามารถทำได้ดีกับเอกสารความช่วยเหลือของคุณ Microsoft ;-)

ฉันกำลังสูญเสียสิ่งที่ต้องทำในตอนนี้ ฉันมีงานจำนวนมากที่ฉันหวังว่าจะทำเสร็จในวันนี้หลังจากอัปเกรดเป็นปี 2008 (คนที่ฉันทำงานด้วยทำงานได้อย่างไม่มีปัญหาและบอกฉันว่ามันจะง่าย - เขายังดีกว่าด้วยฐานข้อมูลที่ฉันใช้ am) ไม่มีใครมีความคิดว่าอาจจะผิดหรือเปล่า? ฉันซาบซึ้งจริงๆ ถ้าฉันไม่สามารถใช้งานได้ในเวลาไม่กี่ชั่วโมงฉันจะกลับไปที่ SQL Server 2005 (ถ้านั่นจะใช้ได้แม้จะเป็น gah ... )

แก้ไข: ฉันได้ลองปิดไฟร์วอลล์ Windows แล้วและนั่นก็ไม่ได้ช่วย นอกจากนี้ฉันสังเกตเห็นว่าฉันไม่มีไดเรกทอรี "ข้อมูล" ภายใต้ทรีไดเรกทอรีติดตั้ง SQL Server 2008 ของฉัน - ฉันอาจตั้งค่าบางอย่างผิดปกติเมื่อติดตั้งหรือไม่

คำตอบ:


328

โปรดตรวจสอบ ServerName ที่คุณให้ไว้ ควรตรงกับชื่อที่แสดงด้านล่างในกล่องข้อความชื่อผู้ใช้และชื่อนั้นควรตามด้วย\SQLEXPRESS:

กล่องโต้ตอบเชื่อมต่อ


30
คำถามนี้อายุ 2 ปี แต่นี่คือสิ่งที่ช่วยฉัน ฉันไม่รู้ว่าฉันต้องการชื่อคอมพิวเตอร์ก่อน\SQLEXPRESS
RoLYroLLs

6
ฉันเข้าใจว่าคำถามนี้ค่อนข้างเก่า แต่ฉันพบว่ามันยุ่งยากมาก ฉันรู้สึกว่าข้อความแสดงข้อผิดพลาดควรให้คำแนะนำนี้แทนที่จะให้ข้อมูลที่ไร้ประโยชน์ :(
mob1lejunkie

ขอบคุณ! ชื่อโดเมนคือสิ่งที่ฉันต้องการจริงๆ
รูเบนส์ Mariuzzo

ไม่น่าเชื่อว่ากล่องดรอปดาวน์จะได้รับการจัดเตรียมด้วย SQLEXPRESS เพียงอย่างเดียวซึ่งไม่สามารถใช้งานได้
Nicolas78

ขอขอบคุณตรวจสอบให้แน่ใจว่าคุณสังเกตเห็นว่าทำโดย "ชื่อคอมพิวเตอร์ของคุณ" \ SQLEXPRESS
windsound

106

เริ่มบริการเซิร์ฟเวอร์ SQL ในเครื่องของคุณ

  • เริ่ม ตัวจัดการการกำหนดค่าของSQL:คลิกเริ่ม -> Microsoft SQL Server 2008 R2 -> ตัวจัดการการกำหนดค่าของเซิร์ฟเวอร์ SQL
  • เริ่มบริการ SQL: ตั้งค่าบริการ SQL Server (SQLEXPRESS) และ SQL Server Browser เป็นโหมดเริ่มต้นอัตโนมัติ คลิกขวาที่แต่ละบริการ -> คุณสมบัติ -> ไปที่แท็บบริการ

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

เริ่มต้นบริการ Local SQL Server 2008 ของคุณ

เข้าสู่ระบบและรับรองความถูกต้องกับ Local SQL Server ของคุณ

  • ตอนนี้เปิด Studio จัดการเซิร์ฟเวอร์ SQL และคลิก "เชื่อมต่อกับวัตถุ Explorer" และเลือกชื่อเซิร์ฟเวอร์:

[ชื่อพีซีของคุณ] \ SQLEXPRESS

ตัวอย่าง: 8540P-KL \ SQLEXPRESS หรือ (localhost) \ SQLEXPRESS

  • ในการค้นหาชื่อพีซีของคุณ: คลิกขวาที่ My Computer -> Properties -> แท็บ Computer Name

  • ทางเลือก: เข้าสู่ระบบโดยใช้การรับรองความถูกต้องของ windows: การใช้ชื่อผู้ใช้ [โดเมนของคุณ] / [ชื่อผู้ใช้ของคุณ]

การตั้งค่าบัญชีผู้ใช้ SQL Server 2008

ตั้งค่าบัญชีผู้ใช้

  • สร้างบัญชีการเข้าสู่ระบบใหม่: ใน SQL Mgmt Studio -> ขยายเซิร์ฟเวอร์ในพื้นที่ของคุณ -> ความปลอดภัย -> คลิกขวาที่การเข้าสู่ระบบ -> เข้าสู่ระบบใหม่

  • ตั้งค่ารหัสผ่านในบัญชีผู้ใช้ใหม่: ยกเลิกการเลือกบังคับใช้นโยบายรหัสผ่านการหมดอายุของรหัสผ่านและผู้ใช้จะต้องเปลี่ยน pw (เนื่องจากนี่เป็นแบบท้องถิ่น) ฐานข้อมูลเริ่มต้น -> ฐานข้อมูลของคุณ

  • มอบบทบาทให้กับบัญชีผู้ใช้ใหม่: หน้าการแมปผู้ใช้ -> แผนที่ไปยังฐานข้อมูลของคุณและให้สิทธิ์หน้าสถานะบทบาท db_owner -> ให้สิทธิ์ในการเชื่อมต่อและเปิดใช้งานการเข้าสู่ระบบ

SQL Server 2008 User Settings Local DB

ตั้งค่าสิทธิ์การเข้าถึง / การตั้งค่าสำหรับผู้ใช้

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

สิทธิ์ของเซิร์ฟเวอร์ SQL Server 2008

ไฟล์คุณสมบัติฐานข้อมูลสำหรับโครงการสปริง

  • database.url = jdbc: jtds: sqlserver: // [
    ชื่อคอมพิวเตอร์พีซีในท้องถิ่น]; instance = SQLEXPRESS; DatabaseName = [db name];

  • database.username = [ชื่อผู้ใช้ของคุณ] database.password = [รหัสผ่านของคุณ]

  • database.driverClassName = net.sourceforge.jtds.jdbc.Driver

หากคุณต้องการดูภาพหน้าจอที่ใหญ่ขึ้นและการจัดรูปแบบคำตอบที่ดีกว่าพร้อมรายละเอียดเพิ่มเติมโปรดดูบทความบล็อกด้านล่าง: การตั้งค่าอินสแตนซ์ในเครื่องของ SQL Server 2008 Blog Post:


3
ขอบคุณ. สิ่งนี้ช่วยมัด
Alan Waage

1
ขอบคุณมาก! สิ่งนี้มีประโยชน์จริงๆสำหรับเวอร์ชั่น 2014 !!
powernit

ตามคำตอบนี้ระบุว่าถ้าคุณไม่เห็นSQL Server 2014 Configuration Manager(ปีใด ๆ ) เมื่อคุณค้นหา "เครื่องมือจัดการการกำหนดค่า" ที่เริ่มต้น ... จากนั้นคุณอาจไม่ได้ติดตั้งอินสแตนซ์ของ SQL Server ที่ถูกต้อง
Don Cheadle

40

ฉันใช้(LocalDB) \ MSSQLLocalDBเป็นชื่อเซิร์ฟเวอร์จากนั้นฉันสามารถดูฐานข้อมูลท้องถิ่นทั้งหมด


ทำงานได้ดีกับ VS 2015 บน Windows 10 64Bit ขอบคุณ
Pirate X

ทำงานโดยใช้ SSMS 2014 แต่ฉันสงสัยว่าสิ่งนี้ขึ้นอยู่กับการเรียกใช้แอปเว็บ. NET ที่จะติดตั้ง / สร้างเซิร์ฟเวอร์ท้องถิ่นนี้
Don Cheadle

นั่นคือ LocalDB ที่ได้รับการติดตั้งด้วย Visual Studio ไม่ใช่ SQL Server Express คำตอบนี้มีประโยชน์สำหรับผู้ที่กำลังมองหาที่จริง ๆ แต่ความแตกต่างสำคัญถ้าคุณต้องการเข้าถึง SQL Express แทนหรือการสร้างฐานข้อมูลบน SQL Express เพื่อใช้ประโยชน์จากคุณสมบัติ LocalDB ไม่สนับสนุนการค้นหาข้อความแบบเต็ม
IronSean

ขอบคุณสำหรับคำชี้แจง IronSean
petrosmm

34

ฮ่าฮ่าโอ้ฉันคิดออก ยังไงก็ตามฉันไม่ได้ติดตั้ง Database Engine เมื่อฉันติดตั้ง SQL Server 2008 ฉันไม่รู้เลยว่าฉันพลาดไป แต่นั่นคือสิ่งที่เกิดขึ้น


ฉันจะตรวจสอบว่าติดตั้งเอ็นจิ้นฐานข้อมูลได้อย่างไร จะไม่ถูกติดตั้งโดยอัตโนมัติหรือ
eran otzap

ในกรณีของฉันฉันลืมติดตั้งเครื่องมือเชื่อมต่อลูกค้าแต่เป็นอีกช่องหนึ่งในหน้า "คุณสมบัติ" ระหว่างการติดตั้ง อย่างไรก็ตามคุณชี้ให้ฉันในทิศทางที่ถูกต้อง ขอบคุณ
Radek Stromský

ในกรณีของฉันในขณะที่ติดตั้งเซิร์ฟเวอร์ sql ฉันไม่ได้รับโปรแกรมฐานข้อมูล servie.While ติดตั้งฉันมี 3 ตัวเลือก 1.Instane Fetaure (โดยไม่ต้องมีกล่องกาเครื่องหมายอยู่ข้างใต้) 2. คุณสมบัติฉีก (พร้อม 2 cehckboxes) 3. คุณสมบัติการแจกจ่าย แจ้งให้เราทราบว่าทำไมฉันถึงได้รับ Database Engine Serivce
Kavitha

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

22

ฉันรู้ว่าคำถามนี้เก่า แต่ในกรณีที่ช่วยให้ทุกคนตรวจสอบให้แน่ใจว่าเบราว์เซอร์ SQL Server ทำงานใน Services MSC ฉันติดตั้ง SQL Server Express 2008 R2 และบริการ SQL Server Browser ถูกตั้งเป็น Disabled

  1. Start-> Run-> Services.msc
  2. ค้นหา "เบราว์เซอร์เซิร์ฟเวอร์ SQL" -> คลิกขวา -> คุณสมบัติ
  3. ตั้งค่าประเภทการเริ่มต้นเป็นอัตโนมัติ -> คลิกนำไปใช้
  4. ลองเชื่อมต่อของคุณอีกครั้ง

นั่นเป็นเพราะปัญหาของฉันกับการเชื่อมต่อ ฉันสามารถใส่ในสตูดิโอการจัดการ แต่จากแอพเซิร์ฟเวอร์ก็มองไม่เห็น :) ขอบคุณ!
สลาฟ

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

15

ฉันเพิ่งแก้ไขปัญหาเกี่ยวกับสิ่งนี้ซึ่งอาจช่วยคนอื่นได้

ตอนแรกเมื่อโหลด MSSMSE มันมีเซิร์ฟเวอร์เป็นPC_NAME\SQLEXPRESSและเมื่อฉันพยายามเชื่อมต่อมันทำให้ฉันError: 26 - Error Locating Server/Instance Specifiedดังนั้นฉันจึงเข้าไปใน SQL Server Configuration Manager เพื่อตรวจสอบว่าฉันSQL Server BrowserและSQL Serverบริการกำลังทำงานอยู่และตั้งค่าเป็นอัตโนมัติเพียงเพื่อค้นหาว่าแทนที่จะบอกว่าSQL Server (SQLEXPRESS)มันบอกว่าSQL Server(MSSQLSERVER).

จากนั้นฉันลองเชื่อมต่อPC-NAME\MSSQLSERVERและคราวนี้SQL Network Interfaces, error: 25 - Connection string is not valid) (MicrosoftSQL Server, Error: 87) The parameter is incorrectฉันก็เลยพบข้อผิดพลาดและพบว่ามีคนแนะนำว่าแทนที่จะใช้PC-NAME\MSSQLSERVERเพียงแค่ใช้PC-NAMEชื่อเซิร์ฟเวอร์ที่อินเตอร์เฟสการเชื่อมต่อเซิร์ฟเวอร์และดูเหมือนว่าจะใช้งานได้

มีลิงค์ที่นี่http://learningsqlserver.wordpress.com/2011/01/21/what-version-of-sql-server-do-i-have/ซึ่งอธิบายว่า MSSQLSERVER เป็นอินสแตนซ์เริ่มต้นและสามารถเชื่อมต่อได้ด้วย ใช้ชื่อโฮสต์ของคุณ

ฉันคิดว่านี่อาจเกิดขึ้นเพราะฉันเคยติดตั้ง SQL Server 2008 มาก่อน


คุณถูกต้อง: "เพียงแค่ใช้ PC-NAME (ใส่ชื่อพีซีของคุณที่นี่) เป็นชื่อเซิร์ฟเวอร์ที่อินเตอร์เฟสการเชื่อมต่อเซิร์ฟเวอร์" มันได้ผล.
พัฒนา Marius Žilėnas

9

ภายใต้เครื่องมือจัดการการกำหนดค่าและการกำหนดค่าเครือข่ายและโปรโตคอลสำหรับอินสแตนซ์ของคุณเปิดใช้งาน TCP / IP หรือไม่ นั่นอาจเป็นปัญหา


1
คุณต้องเปิดใช้งานบัญชี "sa" และให้รหัสผ่านเนื่องจากถูกปิดใช้งานโดยค่าเริ่มต้น นอกจากนี้คุณอาจต้องเปิดใช้งานการรับรองความถูกต้องของ SQL เพราะ "nt auth เท่านั้น" โดยค่าเริ่มต้น
djangofan

8
var.connectionstring = "server=localhost; database=dbname; integrated security=yes"

หรือ

var.connectionstring = "server=localhost; database=dbname; login=yourlogin; pwd=yourpass"

6

สำหรับฉันฉันสามารถทำงานโดยใช้ "." เท่านั้น ในฟิลด์ชื่อเซิร์ฟเวอร์ กำลังต่อสู้กันไปชั่วขณะเพื่อลองคอมโบที่แตกต่างกันของชื่อผู้ใช้และชื่อเซิร์ฟเวอร์ โปรดทราบว่าในระหว่างการติดตั้งเซิร์ฟเวอร์ (เช่นไฟล์นี้: SQLEXPR_x64_ENU.exe) ฉันตรวจสอบอินสแตนซ์เริ่มต้นซึ่งเริ่มต้นชื่อเป็น MSSQLSERVER; คำตอบที่โหวตแล้วข้างต้นอาจใช้ดีที่สุดสำหรับอินสแตนซ์เซิร์ฟเวอร์ที่ระบุชื่อ (เช่นเมื่อคุณต้องการมากกว่า 1) เซิร์ฟเวอร์

วิดีโอทั้งสองนี้ช่วยฉันได้:


3

หนึ่งในสิ่งแรกที่คุณควรตรวจสอบคือ SQL Server (MSSQLSERVER) เริ่มต้นแล้ว คุณสามารถไปที่ Services Console (services.msc) แล้วมองหา SQL Server (MSSQLSERVER) เพื่อดูว่ามันเริ่มทำงานแล้ว ถ้าไม่เช่นนั้นเริ่มบริการ

net start mssqlserverนอกจากนี้คุณยังสามารถทำเช่นนี้ผ่านพร้อมท์คำสั่งโดยการพิมพ์


1

สำหรับฉันมันเป็นปัญหาไฟร์วอลล์ windows อนุญาตการเชื่อมต่อเข้ามา การเปิดพอร์ตไม่ทำงาน แต่อนุญาตให้โปรแกรมทำ

ลิงค์

link2

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