Java通过JDBC连接本地SQL Server失败问题排查求助
SQL Server JDBC连接失败问题排查与解决方案
一、确认主机与实例名称的正确性
- 打开SQL Server配置管理器,展开「SQL Server服务」,找到目标实例(默认实例名为
MSSQLSERVER),右键选择「属性」,在「服务」标签页查看服务名称,确认实例名无误;同时检查「SQL Server网络配置」下该实例的协议是否已启用。 - 打开命令提示符,执行
sqlcmd -L命令,会列出当前网络中可检测到的SQL Server实例,核对你的实例名称是否在列表中。 - 本地连接可尝试用
localhost或127.0.0.1替代主机名,规避主机名解析问题,修改后的URL示例:String url = "jdbc:sqlserver://localhost\\MSSQLSERVER;databaseName=datatreck";
二、代码层面排查
- 类名拼写修正:你的类名
JvaConnect2SQL存在拼写错误(应为JavaConnect2SQL),虽不影响连接,但建议修正以避免后续维护问题。 - URL优化:
- 若使用的是默认实例(
MSSQLSERVER),可省略实例名,直接使用jdbc:sqlserver://LAPTOP-0CSKUFIE;databaseName=datatreck,默认实例会监听1433端口,无需依赖SQL Server Browser服务。 - 显式指定端口号绕开Browser服务,先确认实例监听的TCP端口(通常默认是1433),修改URL为:
String url = "jdbc:sqlserver://LAPTOP-0CSKUFIE:1433;databaseName=datatreck";
- 若使用的是默认实例(
- 驱动显式加载:部分旧版本JDBC需手动加载驱动类,在
try块前添加:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
三、其他关键配置检查
- SQL Server Browser服务状态:按报错提示,务必确认该服务正在运行。在Windows服务列表中找到「SQL Server Browser」,设置为自动启动并启动服务。
- 远程连接权限:打开SQL Server Management Studio,右键目标服务器实例→「属性」→「连接」,勾选「允许远程连接到此服务器」。
- SA账户验证:确认
sa账户已启用,且拥有datatreck数据库的访问权限,同时核对密码的正确性(注意SQL Server的密码大小写设置)。 - 端口防火墙规则:除了UDP 1434,还要确保SQL Server实例监听的TCP端口(如1433)已添加防火墙允许规则,避免端口被拦截。
内容的提问来源于stack exchange,提问作者VincHawthorne
相关产品推荐
相关产品推荐

