无法使用JDBC驱动程序SQLState 08001连接到MS SQL Server

时间:2019-04-19 12:54:21

标签: java jdbc

我正在尝试使用Java连接到MS SQL Server数据库,但是我一直遇到相同的错误。

我正在为开发人员使用MS SQL Server,并通过SSMS对其进行管理。安装后,我将其设置为使用Windows凭据作为密码。

JDBC驱动程序作为Maven依赖项添加到我的项目中。

据我了解的阅读Microsoft文档的内容,我应该能够使用以下连接字符串:

String connectionUrl ="jdbc:sqlserver://localhost;integratedSecurity=true";

但是,这似乎对我不起作用,因为它返回SQLState08001。在阅读了此状态后,我了解到它与无法建立连接有关。

我还尝试使用Windows登录名形成连接字符串,结果相同:

String connectionUrl = "jdbc:sqlserver:localhost:1433;databaseName=DBNAME;user=John Doe;password=0123456789";

我还尝试使用T-SQL创建一个登录名,以使用与前一个字符串相同的字符串作为凭据(仅更改用户名和密码):

CREATE ROLE [USER]
GRANT SELECT, INSERT ON SCHEMA :: [dbo] TO USERNAME
CREATE LOGIN USERNAME_LOGIN WITH PASSWORD = '1234567890'
CREATE USER USER_USERNAME FROM LOGIN USERNAME_LOGIN
ALTER ROLE [USER] ADD MEMBER USER_USERNAME

我真的可以使用一些帮助来了解我做错了什么以及我可以做些什么来使其正常工作。如果您需要我检查任何内容,请告诉我,因为我对此还很陌生。

修改

此处要求提供的信息来自getMessage():

  

找不到适合的驱动程序   jdbc:sqlserver:localhost:1433; databaseName = .....

我猜这也将是我要导入的Maven依赖项的时刻:

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
       <groupId>com.microsoft.sqlserver</groupId>
       <artifactId>mssql-jdbc</artifactId>
       <version>7.3.0.jre8-preview</version>
</dependency>

我认为现在的问题是,我是否将错误的驱动程序作为MS SQL Server 2017的依赖项?

1 个答案:

答案 0 :(得分:1)

我原来没有为MS SQL Server启用TCP / IP连接。

要在MS SQL Server 2017中启用此功能:

  • 从Windows应用程序菜单中启动SQLServerManager14.msc。
  • 转到“ SQL Server网络配置”。
  • 转到“用于您的协议”。
  • 将TCP / IP设置为启用。