当前位置: 首页 > 知识库问答 >
问题:

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

程冥夜
2023-03-14

我使用

  • JTDS 版本: jtds-1.3.1
  • MS SQL JDBC version: mssql-jdbc-8.4.0.jre8 even mssql-jdbc-9.2.0.jre8
  • Java 8 更新 251

为简单起见,代码将相同:

Android Studio 無法連接到 Azure sql server 中的資料庫

连接到SQL服务器或AzureSQL时遇到问题。

我想用这个语法连接:

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-JDBC 时,我无法连接。

val connectionString = "jdbc:sqlserver://192.168.xx.xx:1433;databaseName=myData;user=x1;password=p1;encrypt=true;trustServerCertificate=true;"

我得到以下错误:

com.microsoft.sqlserver.jdbc。SQLServerException:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接。错误:“套接字已关闭”。客户端连接ID:XXXXXXXXXXXXXX

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

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 Azure,出现以下错误

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

我已经试过了:

  1. SSLProtocol=TLSv1.2=

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

共有1个答案

郭弘方
2023-03-14

我刚刚使用下面的 PowerShell 脚本在 Azure 托管实例中修复了此问题:

Set-AzSqlInstance -Name 'InstanceName' -ResourceGroupName 'ResourceGroupName' -MinimalTlsVersion "None" -force
 类似资料:
  • 我编写了一些代码来在本地数据库中插入一个表,但我在堆栈跟踪中得到以下错误: 显然,我可能是错的,但这与我的时区或时区在MySQL或JDBC连接器中的设置方式有关。 这里是我的原始源代码:

  • 我正在尝试使用jdbc连接到我的MS SQL2008数据库,如下所示,但它的给出错误 我的数据库名为,实例名为。请建议我如何提供数据库实例名称和数据库名称在URL。 上面写着 但是当我尝试用相同的用户名和密码从DB GUI登录时,它被登录了。想知道在jdbc设置中在哪里提供数据库实例的详细信息 我也试过用下面的dut不管用

  • 我创建了一个简单的类来测试与我的localhost数据库的通信,这是我用Mysql Workbench创建的。Mysql服务器正在运行。JDBC驱动程序被添加到我的项目的类路径中。 当我运行程序时,我得到以下异常: 线程“main”com.mysql.cj.jdbc.Exceptions.CommunicationsException异常:通信链接失败 最后一个成功发送到服务器的数据包是在0毫秒前

  • 问题内容: 我已经在尝试 开发的JSF Web应用程序中连接到数据库。使用Windows 7,NetBeans 6.9.1,SQLServer 2008,Glassfish 3.3。 我正在使用从 成功连接到SQLServer 2005的XP系统复制的sqljdbc4.jar驱动程序 。 我已验证SQLServer 2008在我的系统上运行,并且可以 使用要在应用程序中 使用的用户名和 密码通过S

  • 这是我的实体 这是我的主课 这就是我的persistence.xml 堆栈跟踪:

  • 有没有办法检查我的Glassfish是否真的看到了ojdbc6.jar? 我正在使用Netbeans 7.2.1、JSF 2、Glassfish 3.1.2和Oracle 11g。我想连接到这个数据库。 所以首先我需要在我的 Glassfish 中创建连接池。我打开本地主机:4848设置5件事: 资源类型:javax.sql.数据源 数据源的类名:oracle.jdbc.pool.OracleDa