2012-12-18 64 views
0

即時通訊嘗試使用jdbc連接連接到遠程mysql數據庫。但即時獲取getting java.sql.SQLException:連接到遠程mysql數據庫時拒絕訪問用戶異常

java.sql.SQLException:在運行java類時,拒絕用戶此異常。但我可以使用mysql查詢瀏覽器或mysql命令連接到這個數據庫。我用以前的版本替換了jdbc驅動程序,但仍然發生此錯誤。我只能讀取遠程數據庫的訪問權限。請幫我解決這個問題。

嘗試{// 這將加載MySQL驅動,每個數據庫都有自己的驅動程序 的Class.forName( 「com.mysql.jdbc.Driver」); //設置與DB

connect = DriverManager 
     .getConnection("jdbc:mysql://myremotehost/remotedatabase?user=username&password=password"); 

    // Statements allow to issue SQL queries to the database 
    statement = connect.createStatement(); 
    // Result set get the result of the SQL query 
    resultSet = statement 
     .executeQuery("select * from mytable limit 10"); 
    writeResultSet(resultSet); 

} catch (Exception e) { 
    throw e; 
} finally { 
    close(); 
} 

感謝

+0

你確定你提供正確的密碼嗎? – KSHiTiJ

+0

是的確定,因爲我使用相同的密碼和用戶名,當我試圖通過查詢瀏覽器。 – ishk

+1

您的密碼不包含我希望的以下任何字符? '?&= \ /' – Mr47

回答

0

假設你已經提供了正確的用戶名和密碼的連接,它只是意味着用戶沒有足夠的權限遠程訪問服務器。

通過創建用於訪問你的應用程序以遠程服務器的新用戶嘗試以下,

CREATE USER 'newUser'@'%' IDENTIFIED BY 'newPass123'; 
GRANT ALL PRIVILEGES ON *.* TO 'newUser'@'%' WITH GRANT OPTION; 

現在,使用newUsernewPass123遠程連接。

+0

感謝您的回覆,遠程服務器提供商僅向我提供只讀訪問權限。但如果我沒有足夠的權限訪問遠程服務器,那麼我怎麼能通過mysql查詢瀏覽器訪問它,我也可以通過它查詢。你知道這個的原因嗎? 。 – ishk

+0

如果您使用的帳戶僅用於「只讀」訪問,則無法執行任何操作。 –

+0

我只想執行select語句。我認爲它有可能在只讀訪問下執行select語句。不是嗎? – ishk

1

您好,我找到了解決這個問題。此錯誤是因爲密碼包含&符號。我們在jdbc連接字符串中使用&符號作爲分隔符。

相關問題