2009-08-18 62 views
5

Đây là lần đầu tiên tôi sử dụng java để truy cập cơ sở dữ liệu, vì vậy tôi có thể có một lỗi đơn giản ở đây, nhưng khi tôi truy xuất kết nối của mình từ cơ sở dữ liệu từ xa mà tôi có quyền truy cập từ chối.JDBC- postgres, kết nối từ chối

Dưới đây là mã trong câu hỏi:

String url = "jdbc:postgresql:url.isformatted.like.this/database"; 

try { 
    conn = DriverManager.getConnection(url, "username", "password"); 
} catch (SQLException e) { 
    e.printStackTrace(); 
    System.exit(1); 
} 

(user/pass và cơ sở dữ liệu url xóa do vì lợi ích riêng tư)

Vấn đề không thể chứng hoặc URL chính nó, như tôi đã sử dụng nó để đăng nhập bằng tay từ cùng một hộp thành công bằng cách sử dụng psql. Tôi nghĩ nó có thể là định dạng của URL, nhưng tôi không thể tìm thấy bất kỳ ví dụ về psql đang được sử dụng trên một địa chỉ từ xa (tất cả họ đều host nội bộ kinda điều)

Trả lời

12

Theo http://www.petefreitag.com/articles/jdbc_urls/ url hợp lệ là

 
jdbc:postgresql:database 
jdbc:postgresql://host/database 
jdbc:postgresql://host:port/database 
jdbc:postgresql://host:port/database?user=userName&password=pass 
jdbc:postgresql://host:port/database?charSet=LATIN1&compatible=7.2 

Bạn có // trước máy chủ không?

+0

nope, tôi didnt! (Tôi đã thấy // trong ví dụ về localhost kinda, nhưng tôi nghĩ nó chỉ áp dụng cho các cơ sở dữ liệu cục bộ) THANKYOU! – RyanCacophony

0

Tôi chỉ nhìn quảng cáo mã của tôi mà kết nối với một cơ sở dữ liệu PostgreSQL, và nó trông như thế này:

DriverManager.getConnection(String.format("jdbc:postgresql://%s/%s", server, dbName), userName, password); 

Ngoài ra, hãy chắc chắn rằng bạn đang tải trình điều khiển cơ sở dữ liệu PostgreSQL trước khi cố gắng kết nối:

Class.forName("org.postgresql.Driver"); 

và thư viện JDBC Jar PostgreSQL nằm trên đường dẫn lớp của bạn.

1

tôi sẽ đồng ý với @ Jonathan về việc có thư viện jar PostgreSQL JDBC trên bạn classpath: đây là những gì tôi đã sử dụng:

private static final String TABLE_NAME = "tablenamegoeshere"; 
private static final String DRIVER = "org.postgresql.Driver"; 
private static final String URL = "jdbc:postgresql://url.for.database/DatabaseName"; 
private static final String USERNAME = "yourusername"; 
private static final String PASSWORD = "yourpassword"; 


private static Connection getConnection() throws Exception { 
    Class.forName(DRIVER); 
    Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 
    return conn; 
} 
Các vấn đề liên quan