mssql-cli icon indicating copy to clipboard operation
mssql-cli copied to clipboard

WSL Ubuntu 20.04: TCP Provider Error: 40 Cannot establish connection.

Open gsmith077 opened this issue 4 years ago • 6 comments

I'm currently hunting down an error with mssql-cli on WSL2 running Ubuntu 20.04 where I am unable to connect to an external (Azure hosted) database. I do have Docker Desktop installed and am using the WSL2 integrations.

  • I have tested connections to this database with the old sqlcmd utility inside WSL, and that works correctly.
  • I can connect to the database using the Azure Data Studio on Windows.
  • I have installed mssql-cli via pip to windows directly, and that works correctly.
  • There does not seem to be a version of mssql-cli available in the microsoft repo for 20.04.
    • Attempting to apt install mssql-cli from the 18.04 source causes multiple package version misalignments, so that's no viable.
  • Pip installed mssql-cli will not connect.

Attempts to connect end up with the following error, after a few minutes of it's not responding:

Error message: 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: TCP Provider, error: 40 - Could not open a connection to SQL Server)

Command to start connection is in the form below: mssql-cli -S "Server.database.widnows.net,1433" -U Username -P password

I'm also getting the same error inside a C# project running in WSL, which is what led me to testing connection with mssql-cli.

gsmith077 avatar Feb 25 '21 16:02 gsmith077

Same situation. From yesterday I can't start my dotnet project in WSL2 on Windows 11. but ping and sqlcmd work normaly

hheexx avatar Nov 15 '21 18:11 hheexx

Same situation. I can't start my dotnet project in WSL2 on Windows 10. but ping and sqlcmd work normaly

ivanlysakov avatar Dec 23 '21 09:12 ivanlysakov

Same situation. From yesterday I can't start my dotnet project in WSL2 on Windows 11. but ping and sqlcmd work normaly

wsl --update resolve this issue for me

ivanlysakov avatar Dec 23 '21 09:12 ivanlysakov

Not for me. No updates are available. Kernel version: 5.10.60.1

I fixed the problem with replacing hostneame of sql server in connection string with ip address. So it looks like it may be DNS resolving problem that only happens from dotnet.

hheexx avatar Dec 23 '21 11:12 hheexx

Yeah, man! The issue in DNS resolving! By IP all works correctly. Thanks

ivanlysakov avatar Dec 30 '21 08:12 ivanlysakov

I faced the same issue. This solution worked for me.

Create a file openssl_tls1.cnf and put it anywhere with the following:

openssl_conf = default_conf

[ default_conf ]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1

Then try to connect with the following command:

OPENSSL_CONF=openssl_tls1.cnf mssql-cli -S <SERVER> -U <USER> -P <PASSWORD>

chrisg123 avatar Mar 15 '22 21:03 chrisg123