sql-server-2012remote-connectionsql-server-2012-express

Enable remote connections for SQL Server Express 2012


I just installed SQL Server Express 2012 on my home server. I'm trying to connect to it from Visual Studio 2012 from my desktop PC, and repeatedly getting the well-known error:

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)

What I've done to try to fix this:

How can I get SQL Server 2012 Express to allow remote connections!?


Solution

  • Well, glad I asked. The solution I finally discovered was here:

    How do I configure SQL Server Express to allow remote tcp/ip connections on port 1433?

    1. Run SQL Server Configuration Manager.
    2. Go to SQL Server Network Configuration > Protocols for SQLEXPRESS.
    3. Make sure TCP/IP is enabled.

    So far, so good, and entirely expected. But then:

    1. Right-click on TCP/IP and select Properties.
    2. Verify that, under IP2, the IP Address is set to the computer's IP address on the local subnet.
    3. Scroll down to IPAll.
    4. Make sure that TCP Dynamic Ports is blank. (Mine was set to some 5-digit port number.)
    5. Make sure that TCP Port is set to 1433. (Mine was blank.)

    (Also, if you follow these steps, it's not necessary to enable SQL Server Browser, and you only need to allow port 1433, not 1434.)

    These extra five steps are something I can't remember ever having had to do in a previous version of SQL Server, Express or otherwise. They appear to have been necessary because I'm using a named instance (myservername\SQLEXPRESS) on the server instead of a default instance. See here:

    Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager)