2011-01-06 74 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的配置中的某些日誌記錄。

相關問題