sql2005连接java无法连接.(Unknown Source)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql2005连接java无法连接.(Unknown Source)相关的知识,希望对你有一定的参考价值。

import java.sql.*;

public class cnct
public static void main(String args[])
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
//String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=CAINIAO-PC"; // 连接服务器和数据库sample
Connection dbConn;
try
Class.forName(driverName);
dbConn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=cainiao","sa","12345678");
System.out.println("Connection Successful!"); // 如果连接成功
// 控制台输出Connection
// Successful!
catch (Exception e)
e.printStackTrace();


//return 0;


com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "cainiao"。登录失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at cnct.main(cnct.java:11)

参考技术A 但从这个报错信息是看不出来啥问题的,只是告诉你无法连接数据库名称为cainiao的sqlserver。确认一下这个数据库名称是否正确,数据库本身是否已经启动

SQL连接:无法连接到java中的数据库

【中文标题】SQL连接:无法连接到java中的数据库【英文标题】:SQL connection : can't connect to database in java 【发布时间】:2015-10-18 00:54:44 【问题描述】:

我添加了 JAR 文件“mysql-connector-java-5.1.36-bin”并创建了数据库“UserScore”并在该表“ScoreSheet”下。我在 ScoreSheet (Name,Score) 值中添加了一行 ( 'Kamal',40) 进行验证,但代码在连接时引发了很多异常。我使用的是 Eclipse + Xampp。

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

public class SQLDriver
    public static void main(String[] args)
        try
            //Accessing driver from jar file
            Class.forName("com.mysql.jdbc.Driver");

            //Get connection through creating a variable 'myConn'
            Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/UserScores");

            //Create statement
            PreparedStatement statement = myConn.prepareStatement("select * from 'scoresheet'");

            //Execute SQL Query
            ResultSet result = statement.executeQuery();

            //Process the result set
            while(result.next())
                System.out.println(result.getString(1)+" "+result.getString(2));
            
        
        catch(Exception e)
            e.printStackTrace();
        
    

【问题讨论】:

那些例外是什么?? 在此处粘贴您的例外情况 but the code throws a lot of exceptions on connection。请提及那些 您的查询中有错误。我想你的意思是select * from scoresheet; "从 'scoresheet' 中选择 *"? 【参考方案1】:

我总是这样:

// Hostname
private static final String dbHost = "127.0.0.1";

// Port -- Standard: 3306
private static final String dbPort = "3306";

// Database name
private static String database = "database"; //

// Database user
private static final String dbUser = "root";

// Datenbankpasswort
private static final String dbPassword = "";

private Statement s;


public void Connect() 
    try 
        Class.forName("java.sql.Driver"); // load driver
        Connection conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":"
                + dbPort + "/" + database + "?" + "user=" + dbUser + "&"
                + "password=" + dbPassword); // try to connect with your attributes 
        s = conn.createStatement();
     catch (ClassNotFoundException e)  // 
        l.error("Driver not found " + e);
     catch (SQLException e) 
        l.error("Connect not possible" + e);
    

【讨论】:

我将 localhost 替换为 127.0.0.1 但没有成功,我猜其余的逻辑上是一样的。 有异常吗? 很多....但我认为数量减少了...所以我分享截图链接:dropbox.com/s/bwr4m3mefd2yn7p/… 好的,问题是您的用户不允许连接到数据库。你必须允许连接。您可以使用 phpmyadmin 或 sql 命令执行此操作:例如 ***.com/questions/10236000/… 感谢 user4139197。我创建了一个具有自定义权限的新用户。【参考方案2】: 您的查询应指定Scoresheet 而不指定' 调用DriverManager.getConnection时指定用户名和密码 表中的第二行似乎不是字符串类型。调用 result.getInt(2) 而不是 result.getString(2)

【讨论】:

尚未为我的数据库设置任何用户名/密码,我遵循了您的第一点和最后一点,但没有成功。 @KamalVidhani 从您发布的屏幕截图来看,MySQL 似乎没有运行。 “MySQL 没有运行”是什么意思? @KamalVidhani 正是它所说的。假设你在 Windows 系统上,你可以这样启动它:dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html

以上是关于sql2005连接java无法连接.(Unknown Source)的主要内容,如果未能解决你的问题,请参考以下文章

SQL server 2005 无法连接到服务器?

如何用SQL SERVER 2005连接SQL SERVER 2008

SQL Server 2005 与 java 的连接。

连接SQL2005出现SQL Server 无法连接到服务器 提示 服务器:消息11,级别16,状态1 怎么解决啊

使用 Java 连接 SQL Server 2005 Express

java连接sql server 2005的问题 java.sql.SQLException: No suitable driver