无法从SSMS连接至Cloud SQL(SQL Server)实例求助
SQL Server远程连接失败排查求助
已尝试的操作:
- 关闭防火墙,排除对公网IP和端口的拦截
- 确认SQL Server Browser服务已启用
- 反复验证使用SQL Server认证,用户名和密码无误
但仍无法连接目标SQL Server实例,报错信息如下:
=================================== 无法连接到 34.131.103.91。 =================================== 建立与SQL Server的连接时出现与网络相关的或特定于实例的错误。未找到服务器或无法访问服务器。请验证实例名称是否正确,并且SQL Server已配置为允许远程连接。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server的连接) (Framework Microsoft SqlClient Data Provider) ------------------------------ 错误编号: 53 严重级别: 20 状态: 0 ------------------------------ 程序位置: 在 Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 在 Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, Boolean isFirstTransparentAttempt, SqlAuthenticationMethod authType, String certificate, ServerCertificateValidationCallback serverCallback, ClientCertificateRetrievalCallback clientCallback, Boolean useOriginalAddressInfo, Boolean disableTnir) 在 Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover, Boolean isFirstTransparentAttempt, Boolean disableTnir) 在 Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) 在 Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) 在 Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, ServerCertificateValidationCallback serverCallback, ClientCertificateRetrievalCallback clientCallback, DbConnectionPool pool, String accessToken, SqlClientOriginalNetworkAddressInfo originalNetworkAddressInfo, Boolean applyTransientFaultHandling) 在 Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) 在 Microsoft.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) 在 Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) 在 Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 在 Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 在 Microsoft.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 在 Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides) 在 Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides) 在 Microsoft.Data.SqlClient.SqlConnection.Open() 在 Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server) 在 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser() =================================== 未找到网络路径
进一步排查建议
- 检查SQL Server远程连接配置:打开SQL Server配置管理器,确保SQL Server网络配置下的TCP/IP协议已启用;在TCP/IP属性的「IP地址」标签中,确认TCP端口设置正确(默认1433),同时进入SQL Server实例属性,勾选「允许远程连接到此服务器」。
- 验证端口映射有效性:如果服务器位于局域网内,确认路由器已正确将公网端口转发至SQL Server所在机器的对应端口(如1433),且映射规则未被禁用。
- 测试网络连通性:使用命令行工具测试端口可达性:
- Windows:
telnet 34.131.103.91 1433或Test-NetConnection 34.131.103.91 -Port 1433 - Linux/macOS:
nc -zv 34.131.103.91 1433
- Windows:
- 确认SQL Server实例状态:确保目标SQL Server实例服务处于运行状态,而非仅SQL Server Browser服务运行。
- 检查连接字符串格式:若使用客户端连接,确认连接字符串正确指定端口或实例名,例如:
34.131.103.91,1433(默认实例)或34.131.103.91\你的实例名(命名实例)。
内容的提问来源于stack exchange,提问作者Ibraheem Haseeb
相关产品推荐
相关产品推荐

