当我运行我的 Spring 季启动应用程序,它试图将数据存储到MS SQL服务器数据库时,它无法连接到Microsoft SQL数据库 .
我在运行时收到以下异常:
引起:com.microsoft.sqlserver.jdbc.SQLServerException:与主机/ sqlexpress,端口1433的TCP / IP连接失败 . 错误:“null . 验证连接属性 . 确保在主机上运行SQL Server实例并接受端口上的TCP / IP连接 . 确保防火墙不阻止与端口的TCP连接 . ”
在代码中,在具有main方法的java类中,bean方法“dataSource()”实现如下:
@Bean public DataSource dataSource(){
final DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl("jdbc:sqlserver://<system_name>/sqlexpress:1433;databaseName=databasename");
dataSource.setUsername("username");
dataSource.setPassword("password");
return dataSource;
}
我正在尝试使用JdbcTemplate进行连接 . 在gradle依赖项中,添加了以下依赖项:
compile(“org.springframework:spring-jdbc”)compile(“com.microsoft.sqlserver:sqljdbc4:4.0”)
从Microsoft SQL Server 2014 Management Studio,我可以连接到主机system_name / sqlexpress,具有端口1433.我检查了SQL Server配置管理器 - > SQL Server网络配置 - > SQLEXPRESS的协议 - > TCP / IP . 它已启用,在TCP / IP属性中,IPAll的TCP端口仅设置为1433 .
当我从springboot应用程序尝试连接时,我无法确定为什么它没有连接 .
如果您对此MSSQL连接问题有任何可能的解决方案,那将非常值得注意 .
谢谢
1 回答
基本上,您需要以硬编码方式配置TCP / IP . 如何做到这一点在这里得到了很好的解释configuring SpringBoot for MSSQL:
从“开始”菜单中,打开SQL Server 2014 Configuration Manager .
在左窗格中单击“SQL Server网络配置”下的“SQLEXPRESS协议” .
在右窗格中,右键单击“TCP / IP”,然后选择“属性” .
在出现的“TCP / IP属性”对话框中,单击“IP地址”选项卡 . 向下滚动以找到IPALL节点 .
删除任何值(如果存在于TCP动态端口,并为TCP端口指定1433) .
现在单击“确定”并重新启动SQL Server .