当我尝试为项目创建数据库时,我收到以下错误:
[08S01]与主机myhost,端口1433的TCP / IP连接失败。错误:"连接超时:无更多信息。验证连接属性。确保主机上正在运行SQL Server实例并接受端口上的TCP / IP连接。确保防火墙不阻止与端口的TCP连接。"
我已经尝试过我可以在网上找到的所有可能的解决方案。我将配置管理器中的端口更改为1433,检查端口是否被防火墙阻止(它不是),打开SQL Server浏览,尝试使用integratedSecurity = true
int连接字符串并且没有任何工作
非常感谢任何帮助,谢谢
答案 0 :(得分:1)
连接问题最可能的原因在有关该问题的第三条评论(由Jura Gorohovsky撰写)中进行了解释,并且实际上已在OP中进行了介绍。重复一遍,详细信息为here。
我的问题与众不同,是由于对(localdb)感到困惑。但是在此之前,因为这是第一个实际答案,所以我将概述朱拉提到的Jetbrains帖子中的步骤,并解决最常见的问题。
SQL Server(SQLEXPRESS)要求启用Rider(可能还有其他Jetbrains产品,例如Intellij,实际上是使用JDBC的任何进程)的访问权限,才能启用TCP / IP。需要执行以下步骤:
为Rider连接配置SQL Server:
cmd.exe /c start C:\Windows\SysWOW64\SQLServerManager14.msc
-SS2017,SQLServerManager13.msc-SS2016,SQLServerManager12.msc-SS2014。在System32中也可以找到这些管理单元。jdbc:jtds:sqlserver://localhost;instance=SQLEXPRESS
。您还可以使用Tds驱动程序。我知道SQLEXPRESS没什么特别的,您创建的任何SS实例都可以用相同的方式打开。
请注意,如果您使用默认端口1433以外的端口,则可能会遇到问题。(我目前找不到文档。)如果您在Rider连接页面中指定端口号,则该实例将被忽略,并且将与默认实例建立连接。从Rider连接到的实例必须设置为默认实例或端口号为1433。
我的问题: 我很早就启用了TCP / IP,但遇到了一个问题,即我只能连接到某种我不了解的默认实例。这是由于我未能充分地区分(localdb)和SQL Server是否正确而引起的,无法确定SQLEXPRESS是单独的产品还是SS的实例,并且不熟悉SS Configuration管理单元。如果您没有碰巧安装SQLEXPRESS或其他SS,这也将导致无法连接的情况出现,就像无法连接一样。
This InfoQ article总结了(localdb)的作用。它是SQL Server的一种轻量级版本,但没有进程管理员,也没有使用相同的可发现性或传输方式。它不会显示在“ SS配置”管理单元中。
一旦您了解了(localdb)/SQLLocalDB.exe与其他SS版本(例如SQLEXPRESS)之间的区别,来自Rider的连接就非常简单并且涵盖了here。
到(localdb)的Connectiong Rider-上面提到的帖子摘要:
SQLLocalDB -s MSSQLLocalDB
传输是命名管道。另一端由SQLLocalDB.exe进程提供。如果Rider保持断开连接状态超过几分钟,则SQLLocalDB.exe将退出,您下次使用Rider时需要重新运行它。可以使用此solution解决此问题。
使用Rider 2018.2.3测试。