【问题标题】:Opening SQL Server Express via JDBC in Mathematica?在 Mathematica 中通过 JDBC 打开 SQL Server Express?
【发布时间】:2012-02-06 15:34:30
【问题描述】:

我有两台计算机,安装了两台(表面上)相同的 SQL Server Express 2008 R2,均运行 Windows 7 64 位。在一台计算机上(称为“红色”),我可以执行以下数学代码来打开与数据库的连接并读取数据

Needs["DatabaseLink`"]

conn = OpenSQLConnection[
  JDBC[
   "Microsoft SQL Server(jTDS)",
   "localhost"],
  "Instance" -> "SQLExpress"]

我在c:\windows\system32\ntlmauth.dll 中安装了用于sql server 的jTDS 驱动程序。我将 dll 从工作机器“红色”复制到非工作机器“黑色”。

我使用 SQL-Server 导入和导出工具将一个非常简单的数据库从“红色”转换为“黑色”,并通过在“黑色”上运行 LinqPad 并读取数据来验证该数据库是否可以访问。都很好。

现在,我尝试在“黑色”上运行上面的 Mathematica 代码,我收到一条无法诊断的错误消息,即:

JDBC::error: "!(TraditionalForm`\"网络错误IOException: Connection refused: connect\") "

我只知道这将是本地服务帐户或网络服务帐户的噩梦般的权限问题之一。我在“黑色”机器上没有 Sql-Server Management Studio,我无法找到合适的 SSMS 版本来安装 SQL Server 2008 R2 Express(没有安装 SSMS Express 2008 版本,理由是“已知的兼容性问题”。 ) 我并没有真正想念 SSMS,因为 LinqPad 可以很好地完成我的开发任务。

我不知道如何诊断或解决方法或以任何方式继续 - 我完全被阻止,非常感谢您的建议或指导。

【问题讨论】:

  • 我正在尝试重现您的问题:您使用 32 位版本的“SQL Server 2008 R2 Express”还是 64 位版本(他们在这里为您提供选择:microsoft.com/betaexperience/pd/SQLEXP08V2/enus
  • 64 位版本的 sql server 2008 r2 express,我很确定 sp1。它也是 ntlmauth.dll 的 64 位版本。

标签: jdbc wolfram-mathematica sql-server-2008r2-express


【解决方案1】:

这里有点猜测,但我会尝试

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433;instance=SQLExpress"]]

我很确定 OpenSQLConnection[] 不采用“实例”选项。如果像这样通过它可能会起作用:

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433"], "Properties"->{"instance"->"SQLExpress"}]

【讨论】:

  • 难以置信,当我远程连接到“红色”机器时,以下语句有效,在“黑色”机器上运行以下命令:conn = OpenSQLConnection[JDBC[ "Microsoft SQL Server(jTDS)", "redMachine"], "Instance" -> "SQLExpress"] 但要访问黑色数据的本地副本机器,我必须使用你的第一个建议。
  • OpenSQLConnection[] 可能只是忽略了“Instance”选项。
【解决方案2】:

连接到 SQL Server 时出现连接错误。这不是身份验证错误。

可能是你的 SQL Server 没有配置为接受请求通过

通过您正在使用的传输协议。打开 SQL Server Surface 配置

经理并允许接受来自所提供的所有方式的连接。

【讨论】:

  • 我找到了“Sql Server 配置管理器”,并在其中找到了四种客户端协议:共享内存、命名管道、TCP/IP 和 VIA。我确保在客户端部分和 Sql Server 网络配置部分都启用了它们(它们没有!),重新启动了 SQL-Server 服务。去了防火墙并为端口1433添加了允许连接的入站和出站规则,但仍然没有骰子:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多