2012-01-01 20 views
23

Từ một chương trình, tôi đã tạo cơ sở dữ liệu H2 mà không chỉ định bất kỳ người dùng hoặc mật khẩu nào trong URL JDBC.Tên người dùng và mật khẩu mặc định cho h2 khi không có gì rõ ràng trong JDBC?

Bây giờ tôi đang cố truy cập cơ sở dữ liệu đó bằng công cụ Tập lệnh. Tài liệu nói sử dụng -user sa trong trường hợp mặc định. Điều đó không hiệu quả và vẫn không hoạt động nếu tôi thêm -password sa hoặc xóa -user. Tôi đang thiếu gì?

/opt/h2/bin java -cp h2-1.3.161.jar org.h2.tools.Script -url jdbc:h2:/data/jug/jas-coref.h2 -user sa -password sa -script /data/jug/ris-start.sql 
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-161] 
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) 
at org.h2.message.DbException.get(DbException.java:169) 
at org.h2.message.DbException.get(DbException.java:146) 
at org.h2.message.DbException.get(DbException.java:135) 
at org.h2.engine.Engine.validateUserAndPassword(Engine.java:301) 
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:146) 
at org.h2.engine.Engine.createSession(Engine.java:121) 
at org.h2.engine.Engine.createSession(Engine.java:28) 
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:285) 
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110) 
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94) 
at org.h2.Driver.connect(Driver.java:72) 
at java.sql.DriverManager.getConnection(DriverManager.java:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:185) 
at org.h2.tools.Script.execute(Script.java:152) 
at org.h2.tools.Script.execute(Script.java:133) 
at org.h2.tools.Script.runTool(Script.java:101) 
at org.h2.tools.Script.main(Script.java:51) 

Trả lời

30

Vâng, duh, điều đó không mất nhiều thời gian.

Câu trả lời là -user "".

+2

Có sự chậm trễ thực thi khi chấp nhận câu trả lời của chính mình. Nếu tôi không nghĩ rằng một người khác có khả năng bước vào cái lỗ đặc biệt này, tôi đã xóa toàn bộ công việc kinh doanh, nhưng vì tôi nghĩ rằng có một số cơ hội tiện ích. – bmargulies

+0

Điều này thực sự hữu ích đối với tôi. Vui vì bạn giữ câu hỏi và anwer. – HRJ

11

này có thể làm việc:

name = "sa" 
password = "" 
+0

@Ruddy Tôi nghĩ rằng nó có, có hay không đó là một câu trả lời tốt là một vấn đề cho lên hoặc xuống phiếu. –

+0

Mặc dù điều này có thể trả lời cho câu hỏi, bạn nên đặt một số văn bản trong câu trả lời của mình để giải thích những gì bạn đang làm. Đọc [cách viết câu trả lời hay] (http://stackoverflow.com/help/how-to-answer). – jurgemaister

2

Trong trường hợp bạn đã bị mắc kẹt với những người dùng mặc định không trống khi chạy client, các tập hợp đầy đủ các thông số sẽ giúp bạn có quá khứ mà:

java -cp <path_to_h2>\h2.jar org.h2.tools.Shell -url "jdbc:h2:file:<jdbc_url>" -driver "org.h2.Driver" -user "" -password "" 
-2

hãy thử điều này:

java -cp h2*.jar org.h2.tools.Script -user "sa" -password "" -url "jdbc:h2:path_to_your_db_file" 
+0

Vui lòng xem xét thêm ngữ cảnh xung quanh mã của bạn, thay vì đăng câu trả lời chỉ mã. – ppperry

+0

Câu trả lời này không đúng và dư thừa. Xem câu trả lời được chấp nhận. – bmargulies

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