2011-01-06 63 views
0

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

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(字符串)只是冻结有。我确定这是服务器的问题,因为当我故意拼错本地主机或IP地址时,程序在20秒内崩溃。这只是永远挂在那里。

对不起,我的最后一个问题是,如果任何人有任何信息我应该做的或安装在服务器上以使其工作?非常感谢!

+2

你尝试添加端口号的连接字符串? – 2011-01-06 07:34:32

+1

检查登录历史记录以查看连接是否到达服务器。在linux上,你可以这样做:通过选项--log =“log-file”选项启动mysql服务器可以启用Mysql登录日志。 /usr/bin/safe_mysqld --log =“/ var/lib/mysql/mysql.log”& 将在/var/lib/mysql/mysql.log文件中记录Mysql日志。尾部此文件以查看日志。要仅查看登录名(连接日志),请使用以下命令: grep Connect /var/lib/mysql/mysql.log – Koekiebox 2011-01-06 07:47:58

回答

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"); 
} 
0
  1. 尝试把端口号和模式有
  2. 尝试使用某些SQL客户端登录到数据库中,可以SQL控制台
  3. 尝试其他司机,可能会出现一些新的或者是旧的
1

你必须提供您要连接的架构的名称。通常,该端口也被添加。

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

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

3306是端口和输入johndoe的第一个实例是架构的名称。 johndoe的第二个实例是用户名。

+0

提及模式的+1。 – 2011-01-06 08:05:20

0

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

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