2012-03-23 49 views
7

tôi sử dụng cơ sở dữ liệu H2 như DBMS từ một máy tính từ xa, vì vậy tôi cho phép truy cập từ xa từ một trình duyệt như sau:kết nối có một cơ sở dữ liệu từ xa

webAllowOthers=true 

nhưng khi tôi cố gắng để kết nối đến máy chủ từ một ứng dụng java của tôi tôi nhận được lỗi này từ H2:

remote connections to this server are not allowed 

ảnh chụp màn hình: enter image description here

Và cũng đã nhìn vào Analyzer mã với (lỗi mã số: 9011 7):

REMOTE_CONNECTION_NOT_ALLOWED = 90117

Các lỗi với mã 90.117 được ném khi cố gắng kết nối với một máy chủ TCP từ máy khác, nếu kết nối từ xa không được phép. Để cho phép kết nối từ xa, khởi động server TCP sử dụng -tcpAllowOthers tùy chọn như trong:

java org.h2.tools.Server -tcpAllowOthers -tcp

Hoặc, khi khởi động máy chủ từ một ứng dụng, sử dụng : Máy chủ máy chủ = Server.createTcpServer ("- tcpAllowOthers"); server.start();

Tôi không hiểu làm thế nào để kích hoạt tcpAllowOthers, nó không tồn tại trong .h2.server.properties?

Trả lời

12

Có hai máy chủ khác nhau:

  • máy chủ Web Console được sử dụng để chạy công cụ H2 Console (công cụ GUI). Nó chỉ có thể được truy cập bởi một trình duyệt.
  • máy chủ TCP cho phép kết nối một ứng dụng sử dụng JDBC, khi sử dụng chế độ client/server (jdbc:h2:tcp://localhost/~/test)

File .h2.server.properties chỉ được sử dụng cho các máy chủ Web Console. Nó chỉ hỗ trợ webAllowOthers=true. Tệp này không được máy chủ TCP sử dụng.

Để bật quyền truy cập từ xa vào máy chủ TCP, bạn cần khởi động máy chủ TCP bằng tùy chọn -tcpAllowOthers. Để bắt đầu cả hai máy chủ Web Console (công cụ H2 Console) máy chủ TCP với các kết nối từ xa được kích hoạt, bạn sẽ cần phải sử dụng:

java -jar h2*.jar -web -webAllowOthers -tcp -tcpAllowOthers -browser 

(điều này cũng bắt đầu một trình duyệt)

+0

1 cho phản hồi nhanh, câu trả lời đã có trên http://www.h2database.com/html/tutorial.html#console_settings, :-) –

Các vấn đề liên quan