MSSQL Startup Error code 17058

This example is based on MSSQL 2008 R2 Windows Server Datacenter Edition SP2.

Unable to startup MSSQL ?





Check out event log under 'Computer Management'.


initerrlog:Could not open error log file ''. Operating system error = 3 (The system cannot find the path specified.).

Try to change to using 'Local System' for the starup account.



If it works, then something is wrong with your existing Windows login account that you do not have privilege to start MSSQL instance service.

http://msdn.microsoft.com/en-us/library/ms143504%28v=sql.100%29.aspx
  • Domain User Account - minimally-privileged. Many server-to-server activities can be performed only with a domain user account. This account should be pre-created by domain administration in your environment.
  • Local User Account - minimally-privileged. This can be used if the computer is not part of a domain.
  • Local Service Account - Built-in account. The official name is "NT AUTHORITY\LOCAL SERVICE". It has the same level of access to resources and objects as members of the Users group, accesses network resources as a null session without credentials.Be aware that the Local Service account is not supported for the SQL Server or SQL Server Agent services.
  • Network Service Account - Built-in account.The official name is "NT AUTHORITY\NETWORK SERVICE". It has higher priviledges than 'Local Service Account'. It accesses network resources by using the credentials of the computer account.
  • Local System Account - Local System is a very high-privileged built-in account. It has extensive privileges on the local system and acts as the computer on the network. The actual name of the account is "NT AUTHORITY\SYSTEM".

In this case, it was originally setup as using 'Network Service Account'. The reason why it was working until now is because this server had just joined a domain.

Thus, since 'Network Service Account' uses the credentials of the login account which is not a domain account, it failed to startup MSSQL instance.

P/s: When a computer joined a domain, you can still login to it using non-domain account as in my case.

To solve this issue, there are three options

1.) Using 'Local System Account' as proven.

2.) Using 'Domain User Account'

3.) Using 'Network Service Account' and login to the server using a domain user account.

For hassle free deployment on non server PCs, just make use of 'Local System'.

Comments

Anonymous said…
Thank you very much: )))
Sudhanshu said…
Bingo.
Rob said…
This helped me. I promoted a server to a domain controller. The SQL instances had been starting under Network Service. They wouldn't start anymore. I changed it to Local System and they started right up. Thanks!
Unknown said…
Hello Mike here,

I was running into the same problem and it took me a while to check out what was going on. I started viewing the system logs and found it was access denied which in case was a privilege error.

The following worked for me also:

Instead of using the Built in account and Local System, I used "This Account" and put in my computer login information and it went through. Not sure why because like the original post suggested the Network Service Account is using the login account which is not a domain account and I just used it to login through "This Account". Again, not sure what the correlation is or why the original Network Service Account just stopped working but it did start working again once I put my account information back in.

Cheers!
Brandon Teoh said…
Thanks for your comments.