15

I have several servers with SQL Server 2008 R2 instances on them, and alias doesn't work on any of them.

Clients connect to these servers using TCP/IP without any problem, telnet works on IP/Port I use for my alias, the firewall exceptions are created, basically everything works fine, except when I create an alias, I can not connect through it to my server using either TCP/IP or named pipes (local or one of other servers).

I've installed latest cumulative updates, which updates native client too (which I think is the source of problem) and I still have the problem. The stranger part is, if I create an alias on a server with sql server 2005 (native client 9), I can connect to my 2008 r2 instances. Any suggestions?

9
  • Aliases or instance names? An alias is an object. Make sure you have the SQL Browser service running. Commented Jun 20, 2011 at 7:41
  • my sql browser is running. I can connect with instance name, or IP. but when I create an alias, I'm stuck Commented Jun 20, 2011 at 8:13
  • I don't understand, an alias is something you use within the instance. I'm not aware of any ability to give a named instance an alias. Commented Jun 20, 2011 at 8:16
  • I'm sorry, are we talking about the same thing? :) I'm talking about aliases you create on client to connect to an instance. As far as I know, it has no limitations about instance type(default or named) Commented Jun 20, 2011 at 8:23
  • msdn.microsoft.com/en-us/library/ms190445.aspx explained it to me. There's a warning in the comments about using the right configuration tool for the architecture your client application will you. Perhaps that's it? Commented Jun 20, 2011 at 9:32

8 Answers 8

22

After you are sure, that it's not firewall problem, TCP/IP problem, and you can connect to server regularly without using alias and only have a problem to connect with alias, I have this problem on Vista and Windows 7.

Solution is to set up proper port inside of "SQL Server Network Configuration" inside "SQL Server Configuration Manager".

Here are the steps:

Go to Computer Management -> Service and Application -> SQL Server Configuration Manager -> SQL Server Network Configuration

Notice that you can also open directly SQL Server Configuration Manager (not from Computer management)

Then in SQL Server Network Configuration, if it is not already enabled, enable TCP/IP protocol.

Right click to open properties of TCP/IP protocol

Then on IP Adresses Tab you will have couple of records.

For every one put TCP Port = 1433

If you use x64 operating system, you have two "SQL Server Network Configuration" nodes, one for 32bit and the other for 64bit. Be sure that you have checked those port on both of them.

Good luck

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for mentioning 32bit. In my case it wasn't until I set up the 32bit Aliases before I got it working
8

For me it was the sequence of creating the aliases that was important. See this link: W2K8 R2 SQL Alias will not connect I started by deleting everything, CliConfig aliases and Configuration Manager Native Client config aliases. Then re-create, adding the CLICONFG version first.

  1. run CLICONFG - create your TCP alias (will default to the x64 version if you're on a 64-bit O/S)

  2. From SQL Server Configuration Manager create the alias under "SQL Native Client 10.0 configuration"

Try to connect using SSMS - it worked for me. If it doesn't you could go on to try the 32-bit set-up. I did this anyway as the application I'm developing which uses the alias is x86.

  1. %SystemRoot%/SysWow64/CliConfg.exe (32-bit version on 64-bit O/S)
  2. "SQL Native Client 10.0 Configuration (32bit)" under the configuration manager tool.

Comments

6

For me, the answer was to use the 32-bit CLICONFG. Both Management Studio and the application I was trying to install were 32-bit applications on a 64-bit server. Moral of the story is to create both 64-bit and 32-bit aliases.

Comments

2

Are you using named instances? And if so have you checked that the port is statically assigned?

If you are using default instances are you running on a x64 platform? There are aliases for 32bit and 64bit so SSMS on the same box as the database engine would use the alias under the 32 bit section even though the box is 64bit

2 Comments

nope, they are all default instances, and I use static ports. anyway, I can connect to my instances via TCP/IP and instance name/IP, so there isn't a problem with my protocol configuration
Well I only have the "SQL Native Client Configuration" node(not 32-bit mentioned anywhere) so I'm assuming the alias is under 64-bit version of native client, and the 32-bit version isn't installed.
2

For me this was caused by me creating the alias on a 64 bit machine but the software running as a 32 bit application.

When in Sql Server Configuration Manager ensure the alias is set under both the following sections:

  1. SQL Native Client {VersionNo} Configuration
  2. SQL Native Client {versionNo} Configuration (32bit)

That way it will be available regardless of processor platform. Of course if you only want the alias available for one platform for some reason, set the appropriate one and not the other.

Comments

1

Try it with the IP address, like 127.0.0.1 instead of your machine name, localhost or .(dot).

Comments

1

In my case it only worked when I placed the port on the connection [server]\[instance],[port]. Example: DBSERVER\OPERATIONS,1433

Comments

0

Also, check that your alias uses listeners that are enabled (is your alias configured to use TCP while your server is only listening via Shared Memory?)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.