2014-01-13 73 views
0

我已經安裝了WAMP的mysql服務器並創建了名爲getataxi的數據庫。當我去phpMyAdmin我可以看到數據庫及其表格。我也通過JDBC連接到這個數據庫。當我創建一個連接到數據庫使用:JDBC表錯誤:未知數據庫

conn = DriverManager.getConnection(DB_URL,USER,PASS);

我得到這個錯誤

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知數據庫 'getataxi' 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util。 H andleNewInstance(Util.java:411)

可能是什麼問題?

注:

  1. 我WAMP的服務器聯機。
  2. 我試圖連接到軟件附帶的測試數據庫,它似乎可以找到測試數據庫,因爲我得到了不同的錯誤消息,說數據庫中的表未找到,它的真實性。
  3. 我試着建立大寫字母和小寫getataxi,但沒有幫助。
  4. 我有一個* .sql文件,其中包含我導入的表格。
  5. DB_URL是jdbc:mysql://localhost/getataxi我也嘗試jdbc:mysql://localhost:3306/getataxi
  6. MySQL的用戶是根
  7. 我使用Windows
+0

post DB_URL和USR – venergiac

+0

您可以通過網絡訪問getataxi嗎?如果沒有,端口是否打開並且mysql正在監聽它? – hd1

回答

2

以下簡化的情況下工作正常,我WAMP(USBWebserver)下,成功上市的所有命名在數據庫中的表getataxi的:

import java.sql.*; 

public class mysqlTestMain { 

    public static void main(String[] args) { 
     Connection conn = null; 
     try { 
      String myConnectionString = 
        "jdbc:mysql://localhost:3306/getataxi?" + 
        "useUnicode=yes&characterEncoding=UTF-8"; 
      conn = DriverManager.getConnection(myConnectionString, "root", "beer"); 
      Statement stmt = conn.createStatement(); 
      stmt.execute("SHOW TABLES"); 
      ResultSet rs = stmt.getResultSet(); 
      while (rs.next()) { 
       System.out.println(rs.getString(1)); 
      } 
      rs.close(); 
      stmt.close(); 
      conn.close(); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 

如果相同的代碼不爲你工作,請嘗試以下代碼列出所有的服務器上(可見)數據庫:

import java.sql.*; 

public class mysqlTestMain { 

    public static void main(String[] args) { 
     Connection conn = null; 
     try { 
      String myConnectionString = 
        "jdbc:mysql://localhost:3306?" + 
        "useUnicode=yes&characterEncoding=UTF-8"; 
      conn = DriverManager.getConnection(myConnectionString, "root", "beer"); 
      Statement stmt = conn.createStatement(); 
      stmt.execute("SHOW DATABASES"); 
      ResultSet rs = stmt.getResultSet(); 
      while (rs.next()) { 
       System.out.println(rs.getString(1)); 
      } 
      rs.close(); 
      stmt.close(); 
      conn.close(); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 

當我運行它,我得到這樣一個列表:

information_schema 
getataxi 
mydb 
mysql 
performance_schema 
test 
+0

即時通訊很抱歉打擾所有與這個問題,事實證明,我忘記了一個月前羨慕安裝MySQL服務器之前,作爲一種服務和作爲服務運行,所以當我連接到數據庫它連接到MySQL,而不是現在我stoped mysql服務和它的工作,再次如此抱歉 –

0

的MySQL數據庫和表對應的文件。所以,如果你在Linux下,他們是區分大小寫(但不在Windows下)。

-1

正如你說你有WAMP服務器了:

保存下面的代碼爲PHP文件,並把這個在您的www文件夾,並嘗試訪問該頁面

<?php 
$username = "root"; 
$password = "your_password"; 
$hostname = "localhost:3306"; <==change port if different1 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 
?> 

你應該能夠看到在瀏覽器中連接到MySQL消息以確認主機名,用戶名和密碼組合。

在Java代碼中,

import java.sql.*; 
public class Java2MySql 
{ 
    public static void main(String[] args) { 
     String url = "jdbc:mysql://localhost:3306/"; 
     String dbName = "demo」 
     String driver = "com.mysql.jdbc.Driver"; 
     String userName = "root"; 
     String password = "mypasswd"; 
     try { 
     Class.forName(driver).newInstance(); 
     Connection conn = DriverManager.getConnection(url+dbName,userName,password); 
     conn.close(); 
     System.out.println("Successfully connected"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

你看到成功連接沒有任何錯誤。那麼你的代碼中有一些問題。請妥善檢查您的代碼。

+0

@downvoter我可以知道downvote ..的共振? – Lucky

相關問題