weixin_47560301 2021-05-16 15:33 采纳率: 0%
浏览 309

IDEA连接SQLserver报错

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Test {
    private static Connection dbConn = null;

    public static void main(String[] args) {
        String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=sa";

        try {
            //1.加载驱动
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.println("加载驱动成功!");
            //2.连接
            dbConn = DriverManager.getConnection(dbURL, "sa", "123");
            System.out.println("连接数据库成功!");
            String sql="select * from login";
            PreparedStatement statement=null;
            statement=dbConn.prepareStatement(sql);
            ResultSet res=null;
            res=statement.executeQuery();
            while(res.next()){
                String title=res.getString("sid");
                System.out.println(title);
            }
        }catch(Exception e) {
            e.printStackTrace();
            System.out.println("连接数据库失败!");
        }

    }
}

代码如上;

导入了相应的jar包:

试了好多种方法还是运行失败,报错如下:

加载驱动成功!
com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "sa"。登录失败。 ClientConnectionId:a744a57a-aa1a-483a-88b3-1e713fcb1e39
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4290)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:569)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at Test.main(Test.java:17)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)
连接数据库失败!

Process finished with exit code 0

 

求求哪位大神帮忙解决一下!!!

  • 写回答

1条回答 默认 最新

  • 小P聊技术 2021-05-16 15:48
    关注

    SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置:
    1,SQL Server Management Studio Express(简写SSMS)
    2,SQL Server 配置管理器/SQL Server Configuration Manager(简写SSCM)

    有两点要注意:
    1,2005的外围应用配置器在2008中换了地方
    2,有些设置生效需要重启一下SQL Server

    step 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择“属性”

    step 2: 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式

    step 3: 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”

    step 4: 展开“安全性”->“登录名”->“sa”,右键选择“属性”

    step 5: 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码

    step 6: 选择“状态”,选中“启用”,点击“确定”

    step 7: 右击数据库选择“方面”

    step 8: 将“RemoteAccessEnabled”属性设为“True”,点“确定”

    step 9: 至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用

    step 10: 下面开始配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行

    step 11: 以下为英文版本界面。如图:右侧的TCP/IP默认是“Disabled”,双击打开设置面板将其修改为“Enabled”

    step 12: 选择“IP Addersses”选项卡,设置端口“1433”

    step 13: 如图将"Client Protocols"的"TCP/IP"也修改为“Enabled”

    step 14: 配置完成,重新启动SQL Server 2008。
    此时应该可以使用了,但是还是要确认一下防火墙。

    SQL Server 2005/2008 Express安装以后,默认情况下是禁用远程连接的。如果需要远程访问,需要手动配置。
    • 打开防火墙设置。将SQLServr.exe(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)添加到允许的列表中。

    评论

报告相同问题?

悬赏问题

  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错