Java SQL Server 2012无法打开数据库错误

时间:2014-05-31 19:36:27

标签: java sql sql-server tcp

当我将SQL Server数据库连接到用netbeans编写的Java应用程序时,我似乎遇到了错误:Cannot open database requested by the login. The login failed.

我阅读了大量文章,并完成了以下工作:

  • 允许1433端口进入UDP和TCP下的防火墙

  • 将SQL Server配置管理器TCP / IP端口设置为1433

  • 将SQL Server Management Studio中的服务器身份验证更改为混合身份验证

  • 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

连续三天阅读后,我的智慧结束了。

2 个答案:

答案 0 :(得分:2)

我似乎已经弄清楚发生了什么。我已经改变了我的电脑设置并更新了很多东西,我必须在整个过程中打破一些东西。

以下是我在其他人遇到Java连接问题时制定的一组说明。这是在新安装的机器上完成的:

将SQL Server数据库(2008或2012)连接到Java Netbeans应用程序:

  1. 安装SQL Server Management Studio 2008或2012
  2. 安装SQL Server 一个。将服务器实例命名为SQLExpress / SQLEXPRESS 湾确保服务器接受混合的身份验证方法(SQL Server和Windows身份验证模式) C。向系统管理员提供密码:admin
  3. 安装最新的JRE和JDK
  4. 安装Netbeans
  5. 在SQL Server Management Studio中创建测试数据库以便稍后进行测试
  6. 更新防火墙以接受TCP和UDP的传入和传出端口1434
  7. 打开SQL Server配置管理器

    一个。停止SQL Server(SQLEXPRESS)和SQL Server Browser服务

    湾在SQL Server网络配置下打开SQLEXPRESS的协议并启用TCP / IP

    ℃。启用所有端口(ESPECIALLY IPAll)并将端口设置为1434

    d。再次启用服务(尤其是SQL Server Browser)

  8. 将sqljdbc_4.0.2206.100_enu解压缩到C:\ drive
  9. 从C:\ Microsoft JDBC Driver 4.0复制并粘贴DLL文件,用于SQL Server \ sqljdbc_4.0 \ enu \ auth \ x86或C:\ Microsoft JDBC Driver 4.0 for SQL Server \ sqljdbc_4.0 \ enu \ auth \ x64(取决于您运行的是64位Java安装还是32位 - 请勿复制)。
  10. 将DLL文件复制并粘贴到C:\ Program Files \ Java \ jdk1.8.0_05 \ bin
  11. 将sqljdbc驱动程序添加到Java Netbeans应用程序

    一个。将sqljdbc驱动程序添加到应用程序库(右键单击“添加”)

    湾在“服务”选项卡下,展开“数据库”,然后右键单击“驱动程序”

    ℃。将sqljdbc4驱动程序添加到服务(右键单击新驱动程序...)

    d。确保连接字符串类似于: JDBC:SQLSERVER://本地主机\ SQLEXPRESS; database = [数据库名称]; integratedSecurity = true; 其中localhost \ SQLEXPRESS从

  12. 更改为运行数据库的服务器

答案 1 :(得分:1)

您的连接字符串表示您正在通过可信连接使用集成安全性。这意味着运行调用数据库的进程的任何用户都必须能够访问SQL Server和您的个人数据库。我建议您在SQL中使用指定用户的混合身份验证。在MSDN SQL Server 2012文档中阅读有关它的更多信息:

Create a Login

Create a Database User

然后你可以创建一个这样的连接字符串:

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;

SQL Server Connection Strings