3

我是 SQL 相关问题的新手,所以请坦白我缺乏知识并提出一个以前被问过无数次的问题。

我必须连接到位于远程位置 xxx.xx.xxx.xx:3306 的 SQL 数据库服务器,但每次尝试连接时都会遇到相同的错误:

“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者: TCP 提供程序,错误:0 - 由于目标机器主动拒绝,无法建立连接。)”

无论我尝试使用 SQL Server Management Studio 连接还是通过以下方式在 C# 程序中连接,我都会收到同样的错误:

 SqlConnection myConnection = new SqlConnection(...)
 myConnection.Open();

我已经在同一个家庭网络上的两台不同的计算机上进行了尝试。我查看了安装 SQL Server 的计算机上的 SQL Server 配置管理器,启用 TCP/IP 并调整端口值设置,但我猜这只是为了在我的计算机上配置 SQL 服务器并且与连接到远程无关。我什至不需要安装 SQL 服务器来在远程服务器上进行查询,对吧?

我已经关闭了我的 Windows 防火墙和路由器防火墙,但ShieldsUP仍然说

端口:3306 状态:隐身

您的系统已获得完美的“TruStealth”评级。由于我们的安全探测测试,没有从您的系统收到任何一个数据包(无论是请求的还是其他的)。您的系统忽略并拒绝回复重复的 Ping(ICMP 回显请求)。从任何黑客的路过探测的角度来看,这台机器在互联网上是不存在的。一些有问题的个人安全系统通过尝试“反探测探测器”来暴露其用户,从而暴露自己。但是您的系统明智地在各个方面保持沉默。非常好。

我读到这也无关紧要,因为我不是托管服务器的人,但是当我得到地址时,我也得到了端口,所以我必须对它做点什么。我只是不确定是什么。我对端口的理解真的很不稳定。

我已经尝试了一天多,我想不出我还能做些什么。

编辑:我解决了这个问题。我必须使用 MySQL,而不是 MSSQL。多哈。对不起大家。

4

3 回答 3

1

如果您确定远程 SQL Server 正在端口 3306 上运行(否则我不确定您为什么在问题中专门谈到该端口),请尝试以下连接字符串:

user id=username; password=password;
data source=123.45.678.90,3306; 
initial catalog=dbname; 
Network Library=dbmssocn;

我认为如果没有端口,如果另一端禁用​​了 SQL Browser 服务,您将遇到麻烦。您还应该确保它不是命名实例,在这种情况下您可能需要:

user id=username; password=password;
data source=123.45.678.90\InstaneName,3306; 
initial catalog=dbname; 
Network Library=dbmssocn;
于 2012-07-10T12:56:22.617 回答
0

首先数据库是本地的还是远程的?你必须确保你的连接字符串写得很好。这是一个有效连接字符串的示例:

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

有关连接字符串的更多信息: 连接字符串

现在,如果一切设置正确,您必须在主机上启用与 SQL Server 的远程连接。为此,请参阅本文: 启用 SQL Server 远程连接

于 2012-07-10T12:36:47.323 回答
0

只需转到 ypur services 并检查您的SQL Server (MSSQLSERVER)是否正在运行。大多数情况下,此错误发生在 SQL Server (MSSQLSERVER) 停止时。 在此处输入图像描述

然后选择它右键单击并单击开始。问题解决了!!!

于 2018-05-18T04:30:06.610 回答