无法连接到SQL Server 2008

时间:2009-05-06 20:19:07

标签: sql-server-2008

我正在研究用VB6编写的应用程序,但我无法连接到我们办公室服务器上设置的SQL Server 2008数据库。

以下是症状:

  • 当我尝试在VB6中通过ADO使用连接字符串进行连接时,VB6挂起然后最终给我错误:“运行时错误'-2147467259(80004005)':[Microsoft] [ODBC SQL Server驱动程序] [ DBNETLIB] SQL Server不存在或访问被拒绝。“
  • 如果我创建一个空白.udl文件并双击它,在“数据链接属性”对话框的“连接”选项卡中,在下拉列表中显示“选择或输入服务器名称”,如果我单击下拉列表要查看列表或单击“刷新”按钮,它会挂起。
  • 当我尝试通过SQL Server 2005 Management Studio连接时(SQL Server 2005安装在我正在使用VB6程序的客户端计算机上),当我尝试连接时:

    • TCP / IP :我收到消息“此版本的Microsoft SQL Server Management Studio只能用于连接SQL Server 2000和SQL Server 2005服务器。(ConnectionDlg)”
    • 共享内存:我收到消息“与SQL Server建立连接时出现与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是正确的,并且SQL Server配置为允许远程连接。(提供程序:SQL网络接口,错误:41 - 无法打开与远程SQL服务器的共享内存连接)(Microsoft SQL Server,错误:87)“
    • 命名管道:“与SQL Server建立连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。请验证实例名称是否正确, SQL Server配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:1326)“

以下是我在网上看到的一些我已经实施的常见解决方案(当然还没有解决问题):

  • SQL Server 2008中已启用远程连接
  • telnet到端口1433给我一个空白屏幕(即,它连接,它不会给我一个错误)
  • 服务器上的
  • netstat -a显示TCP端口1433已打开
  • 已在SQL Server 2008上设置混合身份验证,因此它可以接受Windows身份验证或SQL Server身份验证

我真的在绳子的尽头,不知道该去哪里,因为我不知道哪里(或者甚至)有详细的日志,我可以浏览,告诉我什么时候连接尝试开始,每一步都会发生什么。我希望有一个简单的解决办法,我知道的知识不足。

更新:以下是迄今为止所提出的后续问题的答案:

  • 操作系统:Vista 64位,在客户端和服务器上
  • 根据SQL Server配置管理器
  • ,SQL Browser Server正在服务器上运行
  • 连接字符串 - VB程序中的相关行是: fooSQL.Open“SERVER = SERVERNAME; DRIVER = SQL Server; DATABASE = DATABASENAME”,用户名,密码 (其中fooSQL是ADODB.Connection)
  • 在客户端或服务器(或两者)上关闭防火墙时仍然会发生

re:MDAC

根据This wikipedia article我检查了HKEY_LOCAL_MACHINE \ Software \ Microsoft \ DataAccess \ FullInstallVer,值为“6.0.6001.18000”。我还运行了组件检查器,并在启动时单击“执行机器分析并自动确定发布版本”,单击“确定”后收到以下消息:

“以下产品发布匹配:

UNKNOWN“

更新:SQL服务 re:gator的评论,这里是计算机管理服务器上运行的SQL服务>服务

  • SQL Active Directory帮助程序服务
  • SQL全文过滤器后台程序启动器(MSSQLSERVER)
  • SQL Server(MSSQLSERVER)
  • SQL Server代理(MSSQLSERVER)
  • SQL Server Analysis Services(MSSQLSERVER)
  • SQL Server Browser
  • SQL Server Integration Services 10.0
  • SQL Server Reporting Services(MSSQLSERVER)
  • SQL Server VSS Writer

5 个答案:

答案 0 :(得分:2)

请确认以下内容:

希望这有帮助。

答案 1 :(得分:0)

尝试安装sql 2008管理工作室并通过TCPIP与vb6计算机连接。我也会尝试安装最新的(2008)ODBC驱动程序。

答案 2 :(得分:0)

SQL Server 2008是作为默认实例还是命名实例安装的?如果它是一个命名实例,那么你需要稍微调整你的连接字符串来与它交谈。

当您使用RDP时,是否可以使用客户端工具对本地SQL Server实例进行身份验证?

答案 3 :(得分:0)

Jordan(或其他人在将来阅读此内容),至少有一个解决此类问题的方法是确保同时指定servername和实例名称(即使各种工具,如Migration Assistance或连接字符串) ,就像上面显示的那样)只是提示单独使用servername。

因此,例如,在您的情况下,它似乎应该是serverfoo-pc \ mssqlserver。或者一个正在运行的Express将使用servername \ sqlexpress,或者如果已将实例名称更改为其他名称,请使用它。如果客户端工具与SQL Server位于同一个框中,则可以使用。\而不是servername \,如。\ sqlexpress。

我认为这就是Gator所得到的,但在你的来回中,这个澄清没有得到。希望它有所帮助。

答案 4 :(得分:0)

其中一个非常重要的问题与在MSSQLSERVER之后安装Active Directory有关! 首先,我应该写一下,如果要在 Active Directory之后安装,您将收到来自MS SQL的消息!因此,您需要在AD之前安装MS SQL。

检查以下常见问题后:

1-通过右键单击服务器名称并单击“属性”,然后从左侧菜单中选择“连接”,允许在“SQL管理器”中远程连接到此服务器。

2-在“SQL Server配置管理器”的“SQL Server网络配置”中启用TCP / IP。

3-在“SQL Server配置管理器”的“SQL Server网络配置”中启用命名管道。

4-确保在“SQL Server配置管理器”的“SQL Server服务”中启动“SQL Server Browser”。

5-在“本地计算机上具有高级安全性的Windows防火墙”中为MSSQLSERVER打开端口1433(默认)

最后请确保Active Directory处于活动状态。

我的问题是,我删除了Active Directory,但我忘记了用户仍在域空间中,因此我必须重新安装“Active Directory域服务”。

最好的问候