SqlLocalDB ไม่สามารถเริ่มต้นด้วยบัญชี Windows ของฉัน


12

ฉันเป็นผู้ดูแลระบบและเพียงเรียกใช้คำสั่ง:

 sqllocaldb start v11.0

ผลลัพธ์:

 Start of LocalDB instance "v11.0" failed because of the following error:
 Error occurred during LocalDB instance startup: SQL Server process failed to sta
 rt.

บันทึกตัวแสดงเหตุการณ์รหัสเหตุการณ์: 528

การเรียก Windows API WaitForMultipleObjects ส่งคืนรหัสข้อผิดพลาด: 575 ข้อความแสดงข้อผิดพลาดของระบบ Windows คือ: {ข้อผิดพลาดของแอปพลิเคชัน} แอปพลิเคชันไม่สามารถเริ่มการทำงานได้อย่างถูกต้อง (0x% lx) คลิกตกลงเพื่อปิดแอปพลิเคชัน รายงานที่บรรทัด: 3621

ฉันลองบัญชีอื่น (ผู้ใช้และผู้ดูแลระบบ) ไม่มีปัญหากับพวกเขา

ฉันถอนการติดตั้งและติดตั้ง SQLLocalDB.msi รุ่น 2012 อีกครั้ง แต่ฉันไม่มีโชค คุณมีความคิดและการแก้ไขไหม?


Visual Studio มีปัญหาในการเริ่มต้นโครงการของฉันและฉันเห็นข้อผิดพลาดเดียวกันในบันทึกเหตุการณ์ sqllocaldb start v11.0คงได้โดยการเรียกใช้
Andre Luus

คำตอบ:


12

ตรวจสอบบันทึกข้อผิดพลาดซึ่งมักจะอยู่ภายใต้โฟลเดอร์%localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0จะให้คำแนะนำขนาดใหญ่แก่คุณ

กลับเข้าสู่ระบบในฐานะบัญชีผู้ดูแลระบบ (ไม่ผู้ดูแลระบบ) และเริ่มต้นพร้อมรับคำสั่งด้วย จากนั้นเรียกใช้สิ่งนี้:Run As Administrator

sqllocaldb share v11.0 MyInstance

คุณอาจต้องการเพิ่มบัญชี Windows ของคุณเป็น sysadmin ในอินสแตนซ์นี้หากเป็นเป้าหมาย ดังนั้น:

sqllocaldb start MyInstance

จากนั้นเชื่อมต่อกับ SQLCMD, Management Studio, คุณมีอะไรบ้างและรัน:

CREATE LOGIN [Domain\Username] FROM WINDOWS;
EXEC sp_addsrvrolemember N'Domain\Username', N'sysadmin';

ตอนนี้กลับเข้าสู่ระบบในฐานะบัญชี Windows ของคุณและคุณควรจะสามารถเริ่มต้นอินสแตนซ์นี้โดยใช้:

sqllocaldb start MyInstance

(มันอาจจะเริ่มขึ้นแล้วขึ้นอยู่กับ O / S ของคุณและวิธีที่คุณเปลี่ยนบัญชี)

จากนั้นDomain\Usernameควรจะสามารถเชื่อมต่อโดยใช้ SQLCMD, SSMS ฯลฯ (localdb)\.\MyInstanceโดยใช้


1
นี่เป็นวิธีแก้ปัญหาที่ดี แต่ไม่สามารถอธิบายและแก้ไขปัญหาได้
Nime Cloud

1
@NimeCloud หนอบางทีคนอื่นอาจจะมาพร้อมกับ "แก้ไข" ที่ดีกว่า <shrug>
Aaron Bertrand

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

7

ฉันออกจากระบบแล้วลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบรายอื่นและเปลี่ยนชื่อโฟลเดอร์โปรไฟล์ผู้ใช้ของฉัน ฉันเปลี่ยนเป็นบัญชีของฉันใน Windows 7 มีโฟลเดอร์ TEMP ที่สร้างขึ้นใหม่เป็นโฟลเดอร์โปรไฟล์ผู้ใช้ของฉัน ฉันเปรียบเทียบก่อน & หลังโครงสร้างโฟลเดอร์ตามภาพ พลัส; อินสแตนซ์ LocalDB เริ่มต้นได้สำเร็จ

localdb2.png

ฉันออกจากระบบและเปลี่ยนชื่อผู้ใช้เป็นชื่อเดิม ลงชื่อเข้าใช้อีกครั้ง & กระโดดเข้าไปในโฟลเดอร์นั้น:

C: \ Users \ MYUSERNAME \ AppData \ Local \ Microsoft \ Microsoft เซิร์ฟเวอร์ SQL Local DB \ Instances \ v11.0

และเห็นบันทึกข้อผิดพลาด; ปฏิเสธการเข้าใช้!

http://pastebin.com/ASeJGqpw

วิธีแก้ไข: เพียงลบไฟล์ทั้งหมดในโฟลเดอร์v11.0 ให้สิทธิ์ในการเขียนไปยังโฟลเดอร์v11.0 หากคุณไม่สามารถสร้างอินสแตนซ์อื่นให้สิทธิ์การเขียนในโฟลเดอร์อินสแตนซ์


1
ลบโฟลเดอร์ v11.0 จากนั้นออกsqllocaldb.exe c v11.0ให้สร้างใหม่ (ในบรรทัดคำสั่งสำหรับนักพัฒนา VS2013, ยกระดับ) สิ่งนี้แก้ไขได้
ชีส

2

ฉันเคยมีปัญหานี้เมื่ออินสแตนซ์ localdb และ sql ของฉันถูกติดตั้งกับผู้ใช้ที่แตกต่างจากผู้ใช้ปัจจุบัน (ผู้ใช้โดเมน) ดังนั้นฉันจึงแก้ไขปัญหานี้โดยการล้างโฟลเดอร์ V11.0 และวางไฟล์ mdf และ ldf จากเส้นทางเก่า:

C:\Users\{inseryouroldusernamehere}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0

หวังว่ามันจะช่วย


1

ฉันมีครั้งนี้และการรีบูตง่าย ๆ ก็แก้ไขได้ ดูเหมือนว่าจะมีการแก้ไขมันสำหรับคนอื่น ๆ ด้วย อาจคุ้มค่าที่จะลองก่อนทำคำตอบของNime & Aarons



1

สร้างไฟล์fix.batใส่ข้อความต่อไปนี้ลงไป:

net localgroup Administrators "%userdomain%\%username%" /add

net localgroup Users "%userdomain%\%username%" /add

sqllocaldb d test

rd /s/q "%localappdata%\Microsoft\Microsoft SQL Server LocalDB\Instances\test"

sqllocaldb c test -s

เรียกใช้fix.batในฐานะผู้ดูแลระบบจากนั้นรีสตาร์ทคอมพิวเตอร์ของคุณ ทำงานfix.batอีกครั้ง

ฉันใช้วิธีนี้เพื่อแก้ปัญหานี้มากกว่า 10 ครั้ง


0

ฉันโพสต์ข้อความนี้ที่นี่เนื่องจากคำถามนี้สูงกว่าผลการค้นหาของ Google ในขณะนี้ ในกรณีของฉัน LocalDB ไม่สามารถเริ่มต้นจาก IIS ผมทำตามข้อเสนอแนะความคิดเห็นเพื่อให้นี้จะปรับเปลี่ยน C: \ Windows \ System32 \ inetsrv \ Config \ applicationHost.config เพื่อเพิ่ม setProfileEnvironment = "true" ที่ App สระว่ายน้ำตามที่อธิบายในการใช้ LocalDB กับเต็ม IIS, ส่วนที่ 1: ข้อมูลผู้ใช้ จริง ๆ แล้วฉันได้เปลี่ยนแอททริบิวต์ setProfileEnvironment ของ applicationPoolDefaults เป็นจริงและมันทำงานได้ดีซึ่งอาจจะดีกว่าดังนั้นคุณไม่จำเป็นต้องจำไว้ว่าสำหรับ App Pool ใหม่ทุกครั้ง


0

หากคุณไม่มีข้อมูลจริงในอินสแตนซ์ localdb คุณสามารถลบได้ นี่เป็นตัวเลือกที่ดีถ้าฐานข้อมูลของคุณเริ่มต้นโดยอัตโนมัติ (ใช้ EF DbInitializerหรือการย้ายข้อมูลเป็นต้น)

นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหา:

  • เปิดหน้าต่างพรอมต์คำสั่ง
  • ดำเนินการsqllocaldb delete ****โดยที่****ว่างเปล่าสำหรับอินสแตนซ์เริ่มต้น (ปกติMSSqlLocalDbหรืออินสแตนซ์ที่ลำบาก)
  • ปฏิบัติ sqllocaldb create ****
  • ปฏิบัติ sqllocaldb start ****

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

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