首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JDBC无法连接到Server / Azure SQL数据库

JDBC无法连接到Server / Azure SQL数据库
EN

Stack Overflow用户
提问于 2021-02-08 13:22:04
回答 1查看 2.5K关注 0票数 0

我使用

mssql-jdbc-9.2.0.jre8

  • Java
  • JTDS版本: jtds-1.3.1
  • MS SQL版本:MSSQLJDBC-8.4.0.jre 8甚至是
  • 8更新251

为了简单起见,代码将与以下代码相同:

Android studio can't connect to database in Azure sql server

我有一个问题要连接到Server或Azure SQL。

我想连接到这个语法:

代码语言:javascript
运行
复制
val connectionString = "jdbc:jtds:sqlserver://192.168.xx.xx:1433;databaseName=myData;user=x1;password=p1;encrypt=true;trustServerCertificate=true;"

使用这个JTDS连接字符串,我可以在本地主机上连接到我的SQL Server DB,但是使用MS,我无法连接。

代码语言:javascript
运行
复制
val connectionString = "jdbc:sqlserver://192.168.xx.xx:1433;databaseName=myData;user=x1;password=p1;encrypt=true;trustServerCertificate=true;"

我得到以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(

)加密建立到Server的安全连接。错误:“套接字关闭”。ClientConnectionId: xxxxxxxxxxxxxxxxx

当我使用命令将JTDS版本连接到SQL时,会发生一件有趣的事情:

代码语言:javascript
运行
复制
jdbc:jtds:sqlserver://xxxxx.database.windows.net:1433;database=xxxxx;user=username;password=password;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

我未能连接到SQL,有以下错误

java.sql.SQLException:原因:由于客户端TLS版本低于服务器允许的最小TLS版本,登录失败

我已经试过了

  1. SSLProtocol=TLSv1.2 (TLS,TLSv1.0,TLSv1.1) => none work
  2. ssl=require

是JTDS的bug,JDBC的bug,还是我的连接字符串无效?我可以用我的dotnet应用程序(C#)连接到SQL。

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 22:45:07

我只是使用下面的PowerShell脚本在Azure托管实例中修复了这个问题:

代码语言:javascript
运行
复制
Set-AzSqlInstance -Name 'InstanceName' -ResourceGroupName 'ResourceGroupName' -MinimalTlsVersion "None" -force
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66102487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档