2014-11-24 15 views
9

Tôi đã tạo cơ sở dữ liệu với chương trình của riêng mình và nó xuất hiện dưới dạng tệp mydatabase.mv.db.Cách truy cập tệp * .mv.db của cơ sở dữ liệu H2?

Nhưng khi tôi cố gắng truy cập cùng cơ sở dữ liệu với DbVisualizer, với các thông số giống nhau, nó đã tạo hai tệp mydatabase.lock.dbcelebrity.h2.db và không thấy bảng, được tạo trong chương trình.

Tính không tương thích là gì?

CẬP NHẬT

cả các thiết lập được sau:

enter image description here

enter image description here

+0

Chi tiết kết nối bạn đang sử dụng cho chương trình của mình và 'Bộ xử lý 'là gì? – MadProgrammer

+0

Hãy thử và đảm bảo đường dẫn đang sử dụng '/' và không phải '\' (trong 'DbVisualizer') – MadProgrammer

+0

Để thuận tiện, hãy thêm'; IFEXISTS = TRUE' để tránh tạo tệp cơ sở dữ liệu giả, như được đề xuất [ở đây] (http://stackoverflow.com/a/2443685/230513). – trashgod

Trả lời

15

Trong H2 phiên bản 1.3.x, các tập tin cơ sở dữ liệu <databaseName>.h2.db là mặc định. (Công cụ lưu trữ "PageStore" được sử dụng).

Trong phiên bản H2 1.4.x, tệp cơ sở dữ liệu <databaseName>.mv.db là mặc định. (Công cụ lưu trữ "MVStore" được sử dụng). MVStore vẫn còn là phiên bản beta (tháng 11 năm 2014). Nhưng bạn có thể tắt MVStore bằng cách thêm ;mv_store=false vào URL cơ sở dữ liệu.

+0

tôi có thể xác nhận phiên bản '1.4.190' của h2 sẽ tạo một' .h2.db' thay vì ' .mv.db' (thậm chí tôi đặt' MVCC = TRUE; MULTI_THREADED = TRUE' trong url jdbc). những gì tôi phải làm là đặt 'MC_STORE = TRUE' để buộc h2 sử dụng tệp' .mv.db'. – bob

+0

Tôi nghĩ bạn đang sử dụng phiên bản cũ hơn 1.4.190 hoặc cơ sở dữ liệu đã tồn tại. Bạn có thể kiểm tra bằng cách chạy 'select * từ information_schema.settings nơi tên giống như '% BUILD%''? Với phiên bản 1.4.190, bạn sẽ nhận được '190' hai lần là kết quả (' CREATE_BUILD' là bản dựng được sử dụng để tạo cơ sở dữ liệu và 'info.BUILD_ID' là phiên bản hiện tại). Nhân tiện nó là 'MV_STORE' không phải' MC_STORE'. –

+0

xin lỗi, tôi phát hiện ra là do cơ sở dữ liệu đã được tạo trước đó (không có MVCC = TRUE). nếu ' .h2.db' tồn tại, có vẻ như h2 sẽ sử dụng lại cái cũ hơn thay vì tạo cái mới gọi là' .mv.db'. – bob

2

Câu trả lời được chấp nhận tại là vài tuổi và kể từ khi những người khác có thể tìm kiếm một giải pháp "hiện tại" thêm ...

Để cho nó hoạt động chỉ cần cập nhật trình điều khiển JDBC H2 rằng DBVizualizer sử dụng. Về cơ bản tải xuống "Zip nền tảng độc lập" từ http://www.h2database.com/html/download.html và sao chép tệp h2/bin/h2-X.X.X.jar vào ~/.dbvis/jdbc/ và sau đó khởi động lại trình tạo DBVizualizer để có thể tải trình điều khiển đã cập nhật lên.

Ngoài ra, hãy đảm bảo bạn xóa .mv.db khỏi tên tệp khi đặt tên tệp Cơ sở dữ liệu trong DBVizualizer.

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