使用绿色版SQLServer2008R2出现的问题解析
作者:培轩
已经有很多年不使用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
到此这篇关于使用绿色版SQLServer2008R2出现的问题的文章就介绍到这了,更多相关SQLServer2008R2使用问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!