Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I've just installed SQL Server 2008 and I cannot connect to it with SQL Server Management Studio. My intention is to just let my local windows user be authenticated but I am not totally sure how to do that.

In the connect dialog I'm writing:

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

My first question would be if that is what I should connect to? When I try to connect I get this error message:

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
------------------------------

I went to the URL there displayed and it just basically says "be sure SQL server is running". I think it is but I am not totally sure.

I've disabled the Windows Firewall (this is Windows 7 7100 x86). I've also changed the log on system in the SQL Server Configuration Manager but it seems it's not a problem of logging in but not even be able to open the socket to it. On that same tool I've enabled all the protocols on "SQL Server Network Configuration" -> "Protocols for SQLEXPRESS" with no luck. I run out of ideas. What else can I try?

share|improve this question
    
Sounds like the true answer here was the named instance. .\SqlExpress dot meaning localhost and \SqlExpress is the instance that you want to connect to. For those not knowing, you can have more than one SQL Server on a machine. SqlExpress in this case, is just the name, rather than a strict indication of the type or strict verison of the product. –  p.campbell May 29 '09 at 20:20

2 Answers 2

up vote 20 down vote accepted

Ok, can you open your services console and scroll down to S for SQL Server. You should now see the services. Please ensure SQL Server (SQLEXPRESS) is running and then try .\SQLEXPRESS instead of (local).

So as per your example:

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

Hope this helps

Update: These instructions are because I assume you are running Express Edition not Dev/Std/Ent edition of SQL Server


Try ensuring the appropriate protocols are enabled:

  1. Start the SQL Configuration Manager (ie: Start->Programs->SQL Server->Configuration Tools)
  2. Expand the SQL native Client configuration
  3. Click Client Protocols (you may have a 32-bit and a 64-bit, apply to both)
  4. Ensure Shared memory, TCP/IP, Named Pipes are enabled in that order
  5. Expand SQL Server Network Configuration
  6. Ensure Shared Memory for either SQLEXPRESS and/or MSSQLSERVER is enabled
  7. Click SQL Server Services
  8. Restart any running services

You should now be able to login to the instance


If you find you cannot login at all you may need to follow these instructions to get SQL Server into single user mode. See here for the full instructions from Microsoft.

By default, sqlservr.exe is located at C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn. If a second instance of SQL Server is installed, a second copy of sqlservr.exe is located in a directory such as

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\binn.

You can start one instance of SQL Server by using sqlservr.exe from a different instance, but SQL Server will start the version of the incorrect instance as well, including service packs, which may lead to unexpected results.

To avoid this, use the MS-DOS change directory (cd) command to move to the correct directory before starting sqlservr.exe, as shown in the following example.

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

To start the default instance of SQL Server in single-user mode from a command prompt

From a command prompt, enter the following command:

sqlservr.exe -m

Single-user mode can be useful for performing emergency maintenance when you do not want other users to connect to SQL Server, but any user can become the single user, including the SQL Server Agent service.

You should now be able to login to the instance and add yourself to the security tab and grant full access.

Alternate Method:

THere is a script here that claims to add the current user to the SQL Server sysadmin role. This may work in single user mode but I have not verified it

share|improve this answer
    
Is the Services Console the Services tab on the Windows Task Manager? (Win7). Anyway, SQLEXPRESS is not there, how do I run it? –  J. Pablo Fernández May 24 '09 at 10:08
1  
Service console is start->control panel->administrative tools->services –  Wayne May 24 '09 at 10:09
    
Never mind that, I've found the Services console, SQLEXPRESS is running. –  J. Pablo Fernández May 24 '09 at 10:11
    
Connecting to .\SQLEXPRESS did the trick. Thank you a lot Wayne! –  J. Pablo Fernández May 24 '09 at 10:12
1  
Thank you so much... was going crazy trying to figure this out! (Note to others in ".\SQLEXPRESS" ... "SQLEXPRESS" is the instance Id you gave the server during install. –  RiddlerDev Mar 12 '11 at 2:37

(local) resolves to 127.0.0.1, and works for defaults only. Instances, like the default for SQL Server Express, need a real name. Note that you can check the error log for SQL Server (SQL install folder, then log) and one of the first few entries will give you the IP, port, and name of the instance.

So you could use those instead. Instance names are good to use, since they are fairly consistent. Note that they are also use dynamic ports, so it could be a different port on each restart. SQL Server configuration Manager can set a specific port. not sure about the Express tools.

share|improve this answer

protected by Mark Henderson Nov 10 '11 at 3:04

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.