我在我的服务器上将端口1433转发到9082,在防火墙设置为允许入站和出站,在SQL Server允许远程打开。
但是,我无法从客户端连接到我的SQL Server。
我安装了SQL Server 2012。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:25 - 连接字符串无效)
首先在ERRORLOG中检查SQL Server使用的端口(不能保证它将始终在1433上侦听,或者根本不启用TCP)。
在ERRORLOG中,在启动时,你会发现像这样的一行:
在我的情况下,港口确实是1433,但你的可能是不同的。如果需要,可以使用SQL Server配置管理器进行更改。
其次,如果要将端口转发到另一个端口(例如1433到9082的示例),实际上是禁用了SQL Server Browser。发生这种情况是因为SQL Server Browser不知道您的端口转发,因此它将告诉客户端连接到1433(假设您允许UDP 1434,否则您根本无法访问SQL Server Browser)。
您可以在不使用SQL Server浏览器的情况下连接到SQL实例,但您只需在连接字符串中指定端口(如果有实例名称,则不指定实例名称)。
例如,如果您的实例名为MYSERVER/INST
,则您的连接字符串将类似于:
User ID=*****;Password=*****;server=tcp:MYSERVER,9082
另外,请确保手动配置SPN,否则Kerberos将无法运行。
您可以在此处找到有关如何撰写正确连接字符串的更多详细信息:SqlConnection.ConnectionString Property。
尝试先配置你的路由器。毕竟连接。顺便说一句,是否已启用TCP / IP @sql?确保为sql打开端口。