SQLServer异常;与主机 localhost、端口 1433 的 TCP/IP 连接失败

Posted

技术标签:

【中文标题】SQLServer异常;与主机 localhost、端口 1433 的 TCP/IP 连接失败【英文标题】:SQLServerException; The TCP/IP connection to the host localhost, port 1433 has failed 【发布时间】:2016-08-09 20:20:17 【问题描述】:

使用这个连接字符串

jdbc:sqlserver://localhost\\SQLEXPRESS:1433;database=mydb;user=username;password=psw

我收到以下错误,我无法弄清楚如何解决它:

com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost 的 TCP/IP 连接失败,端口 1433。错误:“连接被拒绝:连接。验证连接属性,检查 SQL Server 实例是否正在主机上运行并在端口接受 TCP/IP 连接,并且没有防火墙阻止与端口的 TCP 连接。

我查看了注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer\SuperSocketNetLib\Tcp,设置了端口,并且禁用了防火墙,实例正在运行并且用户确实具有master默认访问权限!,那么到底出了什么问题?

【问题讨论】:

你的连接字符串看起来不错.. 但只要试试这个方法看看jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;database=mydb;user=username;password=psw' 刚刚试过,得到:com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "mydb" requested by the login. The login failed. 数据库mydb 存在吗?具有给定的用户名和密码权限? @JAG 感谢您让我考虑它,我没有更改数据库,但用户,使用 sa 及其密码可以正常工作,我不知道当时出了什么问题? ! 那么,除了sa 之外,我怎样才能在此数据库上授予另一个登录权限?请立即为整个问题提供答案,@JAG,谢谢。 【参考方案1】:

试试这个连接字符串

jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;database=mydb;user=username;‌​password=psw'

并确保你有这个

instanceName = SQLEXPRESS;
database = mydb;  -- database mydb should exists
user = userName;‌ -- user should exits and have permission to mydb
​password = userPassword

创建新用户

USE [master]
GO
CREATE LOGIN [userName] WITH PASSWORD=N'userPassword', 
             DEFAULT_DATABASE=[YourDB], CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF

授予对YourDB的访问权限

GO
USE [YourDB] -- in your case its mydb
GO
CREATE USER [userName] FOR LOGIN [userName] WITH DEFAULT_SCHEMA=[dbo]
GO

【讨论】:

谢谢,我创建了一个具有正确权限的新用户。【参考方案2】:

转到 SQL Server 配置管理器 -->> SQLEXPRESS 协议 在右侧选项卡中更改 TCP/IP 的属性 1-启用协议 2- 在 IP 地址:确保所有 TCP 端口都是 1433 3- 申请 -->> 好的 4- 重启 SQL Server

希望一切顺利

【讨论】:

【参考方案3】:

尝试省略端口号,或使用逗号代替冒号。

jdbc:sqlserver://localhost\\SQLEXPRESS;database=mydb;user=username;password=psw

jdbc:sqlserver://localhost\\SQLEXPRESS,1433;database=mydb;user=username;password=psw

【讨论】:

以上是关于SQLServer异常;与主机 localhost、端口 1433 的 TCP/IP 连接失败的主要内容,如果未能解决你的问题,请参考以下文章

与主机 localhost、端口 1433 的 TCP/IP 连接失败

通过 Windows 服务访问在 localhost 上运行的当前 Lync 实例时,出现异常“主机进程未运行”

java连接sql server报错:com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/

java连接sql server报错:com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/

与本地主机的 SQL 连接

通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性,并