常规JDBC设置

时间:2011-01-06 07:26:53

标签: java mysql jdbc

所以我在Debian服务器上设置了MySQL数据库,它可以从phpMyAdmin客户端正常工作。我目前正在开发一个项目来编写一个Java服务器,该服务器能够通过JDBC连接使用已在此服务器上的MySQL数据库。我看了很多教程和文档,但所有这些似乎只是解释了如何做客户端代码,但我还没有弄清楚如何成功打开到服务器的JDBC连接。就我而言,我相信该程序已正确设置驱动程序,因为它不会崩溃(我只是将程序的Java Build Path指向MySQL提供的Connector / J)。就我的程序而言,这就是它的样子......

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) {
        System.out.println("Started!");
        try {
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            System.out.println("Driver registered. Connecting...");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", "password");
            System.out.println("Connected!");
            conn.close();
        } catch (SQLException e) {
            System.out.println("Error!");
            e.printStackTrace();
        }
    }
}

这就是印刷品......

Started!
Driver registered. Connecting...

就像DriverManager.getConnection(String)就在那里冻结一样。我确定这是服务器的问题,因为当我故意拼错localhost或IP地址时,程序会在20秒内崩溃。这只是永远挂在那里。

对此文本墙感到抱歉,但我的最后一个问题是,是否有人有任何信息我应该做什么或安装在服务器上以使其工作?非常感谢你!

4 个答案:

答案 0 :(得分:2)

请尝试以下操作:

public class MySqlDemo {

public static void main(String [] args) {

        java.sql.Connection conn = null;

        System.out.println("SQL Test");

        try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                conn = java.sql.DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test?user=root&password=");

        }
        catch (Exception e) {
                System.out.println(e);
                System.exit(0);
                }

        System.out.println("Connection established");
}

答案 1 :(得分:1)

您必须提供要连接的架构的名称。通常,还会添加端口。

这是一个示例连接字符串:

jdbc:mysql://repos.insttech.washington.edu:3306/johndoe?user=johndoe&password=jddb

3306是端口,johndoe的第一个实例是Schema的名称。 johndoe的第二个实例是用户名。

答案 2 :(得分:0)

  1. 尝试将端口号和架构放在那里
  2. 尝试使用某些SQL客户端登录数据库,可能是SQL控制台
  3. 尝试其他驱动程序,可能是更新的或更旧的

答案 3 :(得分:0)

可能是Connector / J库试图使用命名管道连接到MySQL服务器而不是使用TCP / IP,并且由于某种原因,命名管道不可用。尝试指定端口号。

您可能还想尝试按照here所述开启Connector / J配置中的某些日志记录。