2012-05-02 63 views
8

Tôi đang cố gắng kết nối cơ sở dữ liệu với một dự án java. Sau khi đọc một số hướng dẫn và hỗ trợ khóa học, tôi đã hiểu rằng tôi cần tạo một nguồn dữ liệu mới trong Bảng điều khiển dành cho quản trị viên.nguồn dữ liệu derby - kết nối bị từ chối

Vì vậy, tôi đã đăng nhập vào bảng điều khiển dành cho quản trị viên, sau đó điều hướng đến Tài nguyên -> JDBC -> Nguồn dữ liệu -> Mới; điền vào các lĩnh vực và khi tôi đang thử nghiệm các kết nối, lỗi tôi nhận được là cái này:

Tin nhắn Các hoạt động kết nối thử nghiệm thất bại cho nguồn dữ liệu MyDB trên máy chủ server1 tại RO2CVG6CNode01 nút với ngoại lệ sau: java .sql.SQLNonTransientException: java.net.ConnectException: Lỗi kết nối với máy chủ cục bộ trên cổng 1527 với kết nối thư bị từ chối: connect.DSRA0010E: SQL State = 08001, Mã lỗi = 40.000. Xem nhật ký JVM để biết thêm chi tiết.

Tôi không biết vấn đề ở đâu. Có thể với tên cơ sở dữ liệu: jdbc: derby: D: \ MyDB? Có ai có thể giúp tôi không? Tôi cũng đã cố gắng chỉ sử dụng MyDB, sau this tutorial.
Nhưng nó vẫn không hoạt động.

+1

Lỗi kết nối với máy chủ localhost trên cổng 1527 -> lỗi này nói rằng không có cơ sở dữ liệu chạy trên cổng 1527. – oers

+0

chắc chắn, mà máy chủ đang chạy: http: //www.myeclipseide .com/documentation/quickstarts/blueedition/blue_websphere_data_source/images/myeclipse_derby_server_running.png – oers

+0

Liên kết này sẽ hữu ích: http://stackoverflow.com/a/30272670/3728901. Nếu chúng tôi làm từng bước một cách chính xác, chúng tôi sẽ tránh lỗi. –

Trả lời

27

Bạn có đủ Derby Server chạy?

Nó khá có thể là bạn đang cố gắng kết nối với một cơ sở dữ liệu mà không cần máy chủ thực tế chạy trên cổng 1527.

Bạn có thể thử thiết lập kết nối bằng cách sử dụng vỏ dòng lệnh/Linux - tùy thuộc vào những gì hệ điều hành bạn đang sử dụng.

Hãy thử điều này nếu bạn thích:

  1. Mở một dấu nhắc lệnh
  2. Navigate to thư mục cài đặt Derby của bạn
  3. Điều hướng đến thư mục "bin" (Lưu ý: Điều hướng Hơn nữa vào thư mục networkServer nếu nó tồn tại)
  4. Loại "startNetworkServer" và nhấn Enter

Bạn sẽ nhận được một thông báo nói rằng somethi ng như thế này:

2012-08-29 10: 57: 16.559 GMT: Trình quản lý bảo mật được cài đặt bằng chính sách bảo mật Máy chủ cơ bản. 2012-08-29 10: 57: 16.809 GMT: Máy chủ mạng Apache Derby - 10.6.2.1 - (999.685) bắt đầu và sẵn sàng chấp nhận kết nối trên cổng 1527

Nếu bạn không, thì có lẽ bạn có thể kiểm tra tường lửa của bạn (bình luận mời vào đây :)

Nếu bạn làm thế, sau đó bạn có thể kiểm tra của bạn kết nối bằng cách sử dụng phương pháp sau đây:

  1. mở một dấu nhắc lệnh
  2. Navigate to thư mục cài đặt của bạn Derby
  3. Điều hướng đến thư mục "bin"
  4. Loại "ij" và nhấn Enter
  5. Loại sau:

    connect 'jdbc:derby://localhost:1527/MyDB'; 
    

    ... và nhấn Enter

Nếu mọi việc suôn sẻ, bạn sẽ nhận được "ij>" nhắc trở lại.

Từ đây bạn có thể nhập một số truy vấn SQL để kiểm tra kết nối thêm.

Nếu không, thì có thể có một số sự cố khác.

Nếu bạn đang tạo cơ sở dữ liệu cho lần đầu tiên trong trận derby, sau đó bạn sẽ phải sử dụng này thay cho Bước 5 trên:

 connect 'jdbc:derby://localhost:1527/MyDB;create=true'; 

... và nhấn Enter

Hy vọng rằng sau khi làm những việc này, bạn sẽ nhận được kết nối. Trong trường hợp cuối cùng, ít nhất bạn sẽ nhận được một cơ sở dữ liệu mới có tên là MyDB đang hoạt động trên máy chủ Derby. Nếu cơ sở dữ liệu gốc của bạn (MyDB) là tương đối nhỏ, thì nó có thể nhanh hơn chỉ để tái tạo lại nó cho bất kỳ mục đích nào bạn cần nó cho.

Hơn nữa, nếu bạn thiết lập kết nối, bạn có thể thử các công cụ khác mà bạn sử dụng để phát triển cơ sở dữ liệu, vì ít nhất bạn đã loại bỏ khả năng kết nối là vấn đề.

Chỉ cần chắc chắn kiểm tra số cổng được báo cáo từ Bước 4. Đây thường là 1527. Nếu không, sau đó thay đổi số cổng ở Bước 5 (hoặc lệnh thay thế cho cơ sở dữ liệu mới) cho bất kỳ cổng nào được nêu trong tin nhắn từ Derby.

Hope this helps và may mắn :)

Wayne Riesterer

+1

+1 để giải thích mô tả. – dShringi

+0

+1 để có giải thích chi tiết tuyệt vời này .. – EsmaeelQash

1

Bạn đã xác định bí danh xác thực chưa? Dường như vấn đề tương tự như vấn đề trong liên kết dưới đây;

http://www.webspheretools.com/sites/webspheretools.nsf/docs/Error%20when%20testing%20a%20JDBC%20connection%20to%20Derby

Ngoài ra nếu bạn kiểm tra SystemOut.log bạn có thể thấy kể thông báo lỗi mà tài sản không được thiết lập;

{ "08001", "bất động sản Yêu cầu Derby DataSource {0} không được thiết lập.", "40000"},

1

Kiểm tra các tài liệu hướng dẫn derby apache here .....

môi trường Cấu hình để sử dụng Derby Network Client trình điều khiển JDBC

Để sử dụng trình điều khiển Derby Network Client JDBC, hãy đặt CLASSPATH của bạn để bao gồm các tệp jar được liệt kê bên dưới:

  • derbyclient.jar: chứa trình điều khiển JDBC
  • derbytools.jar: tùy chọn, cung cấp các công cụ ij

Bạn có thể đặt bạn CLASSPATH một cách rõ ràng với lệnh hiển thị dưới đây: Windows:

C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derbyclient.jar;%DERBY_INSTALL%\lib\derbytools.jar;. 

UNIX:

$ export CLASSPATH=$DERBY_INSTALL/lib/derbyclient.jar:$DERBY_INSTALL/lib/derbytools.jar:. 

Sau đó, hãy thử tạo một cơ sở dữ liệu như thế này sau khi nhập lệnh ij vào dấu nhắc ..... ij> kết nối

jdbc:derby://localhost:1527/Chapter01DB;create=true; 
1
  1. Tải derby đến vị trí sau:

    /home/ <user_directory> /apache-derby/ 
    
  2. Cài đặt classpath/đường dẫn như sau: máy chủ mạng

    export DERBY_HOME=/home/<user_directory>/magister-database 
    
    export DERBY_INSTALL=/home/<user_directory>/apache-derby/db-derby-10.11.1.1-bin 
    
    export CLASSPATH=$DERBY_INSTALL/lib/derbyclient.jar:$DERBY_INSTALL/lib/derbytools.jar:$CLASSPATH 
    
  3. bắt đầu:

    /home/<user_directory>/apache-derby/db-derby-10.11.1.1-bin/bin/startNetworkServer 
    
  4. Run derby lệnh dòng như sau:

    java org.apache.derby.tools.ij 
    
    connect 'jdbc:derby://localhost:1527//home/<user_directory>/<database-directory>/<database-name>'; 
    
    show tables; 
    
    disconnect; 
    
    exit; 
    
Các vấn đề liên quan