最近需要用IDEA完成课设,同时也需要用到SQL Server实现数据持久化,而刚开始连接数据库时,即使成功用SQL Server身份验证方式连接后,在IDEA里还是不能与SQL成功连接,这里就很可能是防火墙的问题,或者是SQL Server 配置等问题,这里分享idea连接SQL server数据库的一篇经验贴,希望有这方面需要或问题的小伙伴能少走一些弯路,同时也希望大家批评指正,相互学习~
:)
0、开发环境说明
1、启用SQL sever身份验证
打开SQL server数据库,
首先先连接服务器实例,第一次连接可以选择Windows 身份验证 (后面可更改)
右键点击服务器,选择 属性
选择 “安全性”页签,选择 SQL Server 和 Windows 身份验证模式。
确认更改,重启 SQL Server 实例。
下一步就可以设置SQL server 的身份验证密码了
打开 SQL Server Management Studio (SSMS),展开 安全性 文件夹,展开 登录名 文件夹,
右键点击 'sa' 用户,选择 属性,选择SQL Server身份验证,输入密码,检查配置,然后点击确定
这时候重新登录,用SQL Server身份验证方式,输入用户名密码,如果成功登录就完成了
报错情况 (没报错可以跳过这部分)
有部分人到里这发现还是不能用SQL Server身份验证方式连接,比如说题主这时候。。。
这时就要检查是不是下面的地方没设置好:用户名或密码错误,
SQL Server 身份验证模式:确保 SQL Server 处于混合模式
用户权限:确认 'sa' 用户在 SQL Server 上具有足够的权限。
服务状态:确认 SQL Server 实例正在运行。
当然,还有一种更直接的方法,我们可以自己重新 新建登录名
右击 sa, 点击新建登录名,
设置常规设置,服务器角色,用户映射,状态,然后点击确定(一定要确认用户具有足够的权限!!!)
这样就可以 成功用SQL Server身份验证方式连接
2、在 Windows 防火墙中允许 SQL Server 端口 1433
有很多人在弄完上面成功用SQL Server身份验证方式连接后,在IDEA里还是不能与SQL成功连接,这里就很可能是防火墙的问题,有遇到这种问题的可以看下这部分内容
1、打开防火墙设置:
按 Win + R,输入 wf.msc,然后按 Enter 打开 Windows 防火墙高级安全性控制台。
2、创建入站规则:
在左侧菜单中选择 入站规则。
在右侧菜单中选择 新建规则。
选择 端口,然后点击 下一步。
选择 TCP 并指定特定本地端口 1433,然后点击 下一步。
选择 允许连接,然后点击 下一步。
确保选择 域、专用 和 公用,然后点击 下一步。
为该规则命名,例如 SQL Server TCP Port 1433,然后点击 完成。
3、创建出站规则:
在左侧菜单中选择 出站规则。
在右侧菜单中选择 新建规则。
重复上述步骤,确保出站连接也允许 TCP 端口 1433。
4、检查防火墙规则
确认已经创建的规则生效。
打开 控制面板,选择 系统和安全。
点击 Windows Defender 防火墙。
选择 高级设置。
在左侧菜单中选择 入站规则 和 出站规则,检查你刚刚创建的规则。
像这个样子就说明已经可以了
3、检查 SQL Server 配置
目的是确保 SQL Server 配置正确,监听 TCP 端口 1433
1、打开 SQL Server 配置管理器
右键此电脑图标,点击管理
2、启用 TCP/IP
展开 SQL Server 网络配置。
选择 SQL Server 网络配置(32 位) 或 SQL Server 网络配置(64 位)。
点击 SQL Server 网络协议,确保 TCP/IP 协议已启用。
如果 TCP/IP 协议未启用,右键点击 TCP/IP,选择 启用
3、配置 TCP 端口
右键点击 TCP/IP,选择 属性。
在 IP 地址 页签,向下滚动到 IPAll 部分。
确保 TCP 动态端口 是空的,TCP 端口 设置为 1433。
点击 确定,然后重启 SQL Server 服务。
4、重启 SQL Server 服务
打开 服务 管理器:
按 Win + R,输入 services.msc,然后按 Enter。
找到 SQL Server 服务,右键点击并选择 重启。
完成这些步骤后,你的 SQL Server 应该能够通过 TCP 端口 1433 接受连接。
4、IDEA连接SQL Server数据库
连接SQL Server
终于到了最后一部分啦! :)
首先需要在IDEA里面找到DATABASE,然后选择 SQL Server
然后,填上用户名,密码,还有端口号1433,然后可以指定连接的数据库
点击测试连接Test Connection, Succeeded表明测试连接成功
点击OK, Log日志显示Connected,连接成功!!!
报错情况
[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:a9d1ee5b-145f-4a8b-bf6c-1a78c2d465fb sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
这个错误是因为 JDBC 驱动程序无法找到有效的 SSL 证书路径来建立与 SQL Server 的安全连接
解决这个很简单,只需要更改一下SSL证书,换成旧点的版本就好
还是刚才的界面,点Drivers,找到SQL Server更改一下版本就好了
当然这个过程还要下载JDBC包,不过IDEA会后提示你Download,点击一键安装就可以了,这里就不赘述了~
:)