【问题标题】:Java SQL Server 2012 Cannot open database errorJava SQL Server 2012 无法打开数据库错误
【发布时间】:2014-05-31 19:36:26
【问题描述】:

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

我阅读了大量文章并做了以下工作:

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

  • 将 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

连续阅读3天后,我束手无策。

【问题讨论】:

    标签: java sql sql-server tcp


    【解决方案1】:

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

    以下是我制定的一组说明,以防其他人遇到 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 服务

      b.在 SQL Server Network Configuration 下打开 Protocols for SQLEXPRESS 并启用 TCP/IP

      c。启用所有端口(特别是 IPAll)并将端口设置为 1434

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

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

      一个。将sqljdbc驱动添加到应用程序库中(右键添加)

      b.在“服务”选项卡下,展开“数据库”并右键单击“驱动程序”

      c。将sqljdbc4驱动添加到服务中(右键新建驱动...)

      d。确保连接字符串类似于: jdbc:sqlserver://localhost\SQLEXPRESS;数据库=[数据库名称];综合安全=真; 其中 localhost\SQLEXPRESS 更改为您运行数据库的服务器

    【讨论】:

      【解决方案2】:

      您的连接字符串表明您正在使用基于可信连接的集成安全性。这意味着运行调用数据库的进程的任何用户都必须有权访问 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

      【讨论】:

      • 谢谢!这似乎消除了我遇到的错误,但现在我得到了:The server sqlexpress is not configured to listen with TCP/IP. 我已经在 SQL Server 配置管理器中启用了 TCP/IP。
      • 这里有一个很好的解决这个问题的教程:blog.citrix24.com/…
      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多