将Java连接到本地SQL数据库

时间:2018-06-28 23:08:44

标签: java mysql sql

我正在尝试将Java应用程序连接到在本地计算机上设置的SQL数据库。没有服务器,因此在尝试研究服务器时无法找到所有答案或无法使用它们。运行此命令时出现的错误是:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

由以下原因引起:java.net.ConnectException:连接被拒绝:connect

我已经验证了SQL的用户名和密码,并验证了该帐户具有完整的管理员权限。有任何想法吗?我不知所措...

package database_console;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnect {


    public static void main(String[] args) {
try{
        String host= "jdbc:mysql://[myIPaddress]/MTGDatabase";
       String uName = "Java";
       String uPass = "pass";
        Connection con = DriverManager.getConnection(host , uName, uPass );

    }  
    catch(Exception e){
    e.printStackTrace();    
    }
    }
}

2 个答案:

答案 0 :(得分:1)

用[127.0.0.1:3306“或” localhost:3306“替换[myIPaddress]。 '127.0.0.1'和'localhost'是指您自己的本地计算机的同一件事。 3306是MqSQL正在侦听新连接的端口。

String host = "jdbc:mysql://localhost:3306/MTGDatabase"; 

or

String host = "jdbc:mysql://127.0.0.1:3306/MTGDatabase";

这应该可以解决您当前的问题:)


但是在另一个节点上:

通过DriverManager获取数据库连接是一项相当古老的技术。一种更好的方法是使用DataSource,方法是查找已经为您配置的服务器容器:

Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/MTGDatabase");

或直接从数据库驱动程序实例化和配置一个:

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("Java");
dataSource.setPassword("pass");
dataSource.setServerName("localhost");

,然后从中获取连接,如上:

Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM MYTABLE");
...
rs.close();
stmt.close();
conn.close();

答案 1 :(得分:-1)

您需要放置端口String host= "jdbc:mysql://[myIPaddress]:[port]/MTGDatabase";并创建一个Statement以执行查询Statement stmt=con.createStatement();