使用绿色版SQLServer2008R2出现的问题解析
作者:培轩 时间:2024-01-22 23:42:58
已经有很多年不使用SQLServer了,毕竟商业版本是个收费的,安装也不容易。最近因为想带领学生学习做个练习性的项目,参考了.net下的petshop数据库,发现只提供了SQLServer和Oracle的版本。为了省事于是只好使用SQLServer。在网上找个快捷使用的绿色版本,SQL Server 2008 R2 v3.2.1 绿色免费j精简版(附使用教程)。下载网址如下:https://www.jb51.net/softs/796287.html#downintro2
在使用中遇到的问题记录一下,下次要再用时防止出现重复的问题。
1、绿色版本缺乏必要的支持Navicat For MSSQL无法访问
这个问题暂时没有花时间解决,好在绿色版软件中自带个简陋的管理器勉强可以使用,就是界面使用上看起来有点不美观。
2、使用JDBC连接MSSQL数据库出现的问题
依然记得在早前使用JDBC访问MSSQL的实现是个第三方的叫jtds,在某开源项目中使用的也是这个依赖,到这个jdbc的发布网站上查看发现最近的更新是2013年。之后就没有最新的版本出来了。原来是微软自己有JDBC的实现。使用文档有中文说明,网址如下:https://learn.microsoft.com/zh-cn/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16
本着用新不用旧的原则,直接使用最新版本的JDBC驱动,按照Maven中的配置定义如下:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.2.0.jre11</version>
</dependency>
在完成与SpringBoot的相关配置之后,发现SpringBoot应用启动过程根本无法连接这个绿色版本的SQLServer数据库。这是什么情况?经过分析后得出结论是MSSQL的绿色版本过低与JDBC不相匹配,高级的SQLServer还暂时没有合适的绿色版本,只能考虑降低JDBC的版本。于是降低 MSSQL 驱动版本至 8.2.x,并且将jre支持指定为jre8,新的Maven依赖配置如下所示:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.2.2.jre8</version>
</dependency>
修改完成后SpringBoot应用启动终于可以连接到数据库了,但是在实际进行数据访问时又出现了以下的错误:
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
这是因为Java8(291)之后 , 禁用了TLS1.1 , 使JDBC无法用SSL连接SqlServer2008怎么办。具体解决方法可以参考如下的网文地址:
https://www.jb51.net/article/279437.htm
https://www.jb51.net/article/279441.htm
最后还要注意的问题是JDBC的连接串的用法,由于MSSQL使用的绿色版本与标准安装的SQLServer在端口和名称是不一样的,标准安装的SQLServer是用户自己指定数据库实例和用户密码(也可以使用默认的),而绿色版本由于快捷使用需要已经提前设置好这些系统参数,可以在启动界面上看到:
因此JDBC连接串为:jdbc:sqlserver://127.0.0.1:8829;instanceName=QJH2;database=MSPetShop4
使用用户标识是sa,密码为sql
来源:https://www.cnblogs.com/xupeixuan/p/17271181.html