如何在JetBrains DataGrip中连接到MS SQL Server Express?

10
我将尝试设置一款名为JetBrains的新工具:DataGrip,以便与我本地安装的MS SQL Server 2014 Express配合使用。我花了一些时间试图将ms连接字符串“转换”为jdbc,但没有成功。我可以使用MS SQL Server 2014管理工具进行连接。
因此,这是我的连接字符串:
"Data Source=MyPCName\MySQLInstanceName;Initial Catalog=MyDataBaseNameA3D;Integrated Security=True;"

我最好的猜测是基于msdn的示例:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

MSDN:使用JDBC驱动程序连接SQL Server。构建连接URL

jdbc:sqlserver://MyPCName\MySQLInstanceName:1433;databaseName=MyDataBaseNameA3D;integratedSecurity=true;

有没有人解决过这个问题并能帮我步骤设置一下?
否则我就不会再使用这个工具了。我已经浪费了足够的时间在这件本应非常简单的事情上。
1个回答

19

DataGrip为每个jdbc驱动程序预定义了jdbc url模板。对于MS SQL Server,它有两个驱动程序:

  • SQL Server(Microsoft驱动程序)的模板url连接字符串为:jdbc:sqlserver://主机:端口;databaseName=<你的数据库名称>

  • SQL Server(jTDS驱动程序)的模板url连接字符串为:jdbc:jtds:sqlserver://主机:端口/<你的数据库名称>

在这两种情况下,数据库名称都是可选的。如果设置相应的连接参数,则这些url模板也会自动填充。 自从DataGrip 2016以来,在填写连接设置时还可以进行补全操作: 数据库连接设置

可能您的url是正确的,但仍然收到tcp连接错误。在这种情况下,请确保如果您通过TCP端口进行连接,则SQL Server已经在指定的ip地址上配置接受远程连接监听指定端口号的tcp连接(或参见SQL Server文档)。

如果您通过命名实例进行连接,请确保在连接设置中指定实例名称并省略指定端口(如果它是 Sql Server 的“express”版本,则实例名称可能为 SQLEXPRESS)。

更新:请参阅DataGrip博客上的《将DataGrip连接到MS SQL Server》教程。

2
谢谢Andrey!在Sql Server配置管理器中启用TCP/IP协议后,一切都很顺利! - Yuriy
3
我需要激活所提供的第一个链接中提到的名为_SQLBrowser_的服务。谢谢! - Jämes
谢谢,这篇文章 https://blog.jetbrains.com/datagrip/2016/06/21/connecting-datagrip-to-ms-sql-server/ 帮助我解决了问题。 - erik.aortiz
我刚刚浪费了很多时间,然后发现了你的帖子,它是正确的:使用jTds可以立即解决问题。 - Nenad Bulatović

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接