写在前面
主要是记录一下如何配置SQL Server2019的过程。
一、下载并安装SQL Server2019
主要参考了博文:SQLServer2019安装(Windows)。
- 下载的官网在:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads。
- 可以选择下载免费的开发者版本(Developer 版)。
- SQL Server2019的可视化管理软件可以使用SQL Server Management Studio,下载的官网在:https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15。
- SQL Server 2019配置管理器可以用于配置端口、启动/重启SQL Server服务等功能。
二、下载JDBC依赖包
- 可以参考官方的文档:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15。
- 如果使用Maven项目管理的话直接用配置文件配置即可。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre8</version>
</dependency>
- 注意
version
,如果是JAVA8版本的话,要用jre8后缀的jar包。
三、创建数据库和表
这里主要是介绍如何使用SQL Server Management Studio进行创建。
- 在左边数据库上右键新建数据库即可创建新数据库。
- 在新建的数据库下的表上右键新建表即可进入创建表的窗口。
- 常用的数据类型可以参考博客:SQL Server 常用数据类型说明。
- 填完要在表上创建的列之后,直接保存当前窗口即可创建新表。
- 如果修改了创建表的窗口中的值,直接保存即可修改已经创建了的表。但如果某些改动需要删除原表重新创建(如修改了某些列的数据类型),将不被允许修改。
- 点击工具->选项,在设计器中取消勾选阻止保存要求重新创建表的更改即可。
- 但要特别注意,如果是表已经有大量的数据了,重新创建表是相当危险的操作,因为数据将全部丢失。
四、用JDBC测试连接数据库
一个测试能否正确连接数据库的代码如下:文章来源:https://www.toymoban.com/news/detail-449038.html
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.*;
public class DB_Test {
private static Connection dbConn = null;
public static void main(String[] args) {
String dbURL = "jdbc:sqlserver://localhost:1433;"
+ "DatabaseName=Test;"; // Test为数据库名称
try {
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");
//2.连接
dbConn = DriverManager.getConnection(dbURL, "sa", "123456"); // sa管理员身份
System.out.println("连接数据库成功!");
String sql="select * from Test"; // 执行的语句,Test为数据库表
PreparedStatement statement=null;
statement=dbConn.prepareStatement(sql);
ResultSet res=null;
res=statement.executeQuery();
while(res.next()){
String title=res.getString("id"); // 或者属性列对应值
System.out.println(title);
}
}catch(Exception e) {
e.printStackTrace();
System.out.println("连接数据库失败!");
}
}
}
五、一些错误
错误1:com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。
- 场景:在使用JDBC连接数据库的时候出现。
- 原因:应该是数字证书的问题。
- 解决方法:
- 可以尝试添加数字证书,参考:https://apisero.com/how-to-resolve-pkix-path-building-failed-unable-to-find-valid-certification-path-to-requested-target-issue/。
- 补充的可以看:https://blog.packagecloud.io/solve-pkix-path-building-failed/。
- 但是我配置了数字证书之后还是不行,不太清楚是哪里的问题。
- 官方的配置过程是这个:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/configuring-the-client-for-ssl-encryption?view=sql-server-ver16。但我没有进一步配置了,因为比较麻烦。
- 另一个简单粗暴的方法是直接信任这个连接,参考:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/connecting-with-ssl-encryption?view=sql-server-ver16。
- 然后配置连接的时候按照下面的写法:
// 适用于 SQL Server 的 Microsoft JDBC 驱动程序不会验证 SQL Server TLS 证书
String dbURL = "jdbc:sqlserver://localhost:1433;"
+ "DatabaseName=Test;"
+ "encrypt=true;trustServerCertificate=true";
错误2:对象名 ‘XXX’ 无效。
- 场景:在SS脚本执行的时候数据库表XXX报错,提示找不到这个表。
- 原因:没有切换到对应要操作的数据库下。
- 解决方法:在左上角可用数据库选择框中切换到对应的数据库即可。
文章来源地址https://www.toymoban.com/news/detail-449038.html
错误3:脚本执行长时间没有响应
- 情景:执行脚本的时候长时间没有响应,而且通过代码(如JDBC)访问也不能响应。
- 原因:数据库发生死锁。我这边是因为通过代码访问的时候开了多线程导致了数据库死锁。
- 解决方法:在Sql Server Configuration Manager中重启数据库服务即可。
错误4:无法获得数据库 ‘model’ 上的排他锁。请稍后重试该操作。CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 (Microsoft SQL Server,错误: 1807)
- 情景:创建数据库的时候出现的,无法创建成功。
- 原因:可能是在数据库管理上出现了死锁,导致无法执行操作。
- 解决方法:执行下面的脚本,参考博文:SQL SERVER 2012 新建数据库错误“无法获得数据库 ‘MODEL’ 上的排他锁”解决方案。
declare @sql varchar(240)
while 1=1
begin
select top 1 @sql = 'kill '+cast(spid as varchar(20))
from master..sysprocesses
where spid > 50 and spid <> @@spid
if @@rowcount = 0
break
exec(@sql)
end
到了这里,关于IDEA02:配置SQL Server2019数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!