Java SQL Server 2012无法打开数据库错误
我似乎遇到了错误: Cannot open database requested by the login. The login failed.
Cannot open database requested by the login. The login failed.
将我的SQL Server数据库连接到用netbeans编写的Java应用程序时。
我读了很多文章并做了以下工作:
-
在UDP和TCP下允许1433端口到防火墙
-
将SQL Server配置管理器TCP / IP端口设置为1433
-
将SQL Server Management Studio中的服务器身份validation更改为混合身份validation
-
SQL Server Management Studio中允许的远程连接
我的连接字符串如下:
jdbc:sqlserver://localhost\\SQLEXPRESS:1433;DatabaseName = SASS; IntegratedSecurity=true; Trusted_Connection=true;
我仍然收到以下错误:
Cannot open database "SASS" requested by the login. The login failed. ClientConnectionId:894b97b9-54d6-47cc-afd7-1473a460c09d
经过3天的连续阅读,我的智慧结束了。
我好像已经知道发生了什么事。 我已经改变了我的电脑设置并更新了很多东西,我一定是在打破了一些东西。
以下是我在其他人遇到Java连接问题时已经解决的一组说明。 这是在新安装的机器上完成的:
将SQL Server数据库(2008或2012)连接到Java Netbeans应用程序:
- 安装SQL Server Management Studio 2008或2012
- 安装SQL Server a。 将服务器实例命名为SQLExpress / SQLEXPRESS b。 确保服务器接受混合的身份validation方法(SQL Server和Windows身份validation模式)c。 向系统管理员提供密码:admin
- 安装最新的JRE和JDK
- 安装Netbeans
- 在SQL Server Management Studio中创建测试数据库以便稍后进行测试
- 更新防火墙以接受TCP和UDP的传入和传出端口1434
-
打开SQL Server配置管理器
一个。 停止SQL Server(SQLEXPRESS)和SQL Server Browser服务
湾 在SQL Server网络配置下打开SQLEXPRESS的协议并启用TCP / IP
C。 启用所有端口(ESPECIALLY IPAll)并将端口设置为1434
d。 再次启用服务(尤其是SQL Server Browser)
- 将sqljdbc_4.0.2206.100_enu解压缩到C:\驱动器
- 从C:\ Microsoft JDBC驱动程序4.0复制并粘贴DLL文件,用于SQL Server \ sqljdbc_4.0 \ enu \ auth \ x86或C:\ Microsoft JDBC驱动程序4.0,用于SQL Server \ sqljdbc_4.0 \ enu \ auth \ x64(取决于关于你是在运行64位Java安装还是32位 – 不要复制两种方式。
- 将DLL文件复制并粘贴到C:\ Program Files \ Java \ jdk1.8.0_05 \ bin中
-
将sqljdbc驱动程序添加到Java Netbeans应用程序
一个。 将sqljdbc驱动程序添加到应用程序库(右键单击添加)
湾 在“服务”选项卡下,展开“数据库”,然后右键单击“驱动程序”
C。 将sqljdbc4驱动程序添加到服务中(右键单击新驱动程序…)
d。 确保连接字符串类似于:jdbc:sqlserver:// localhost \ SQLEXPRESS; database = [数据库名称]; integratedSecurity = true; 其中localhost \ SQLEXPRESS更改为您正在运行数据库的服务器
您的连接字符串表示您正在通过可信连接使用集成安全性。 这意味着,运行调用数据库的进程的任何用户都必须能够访问SQL Server和您的个人数据库。 我建议您在SQL中使用带有命名用户的混合身份validation。 在MSDN SQL Server 2012文档中阅读有关它的更多信息:
创建一个登录
创建数据库用户
然后你可以创建一个这样的连接字符串:
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
SQL Server连接字符串