2012-01-01 15 views
23

Z programu utworzyłem bazę danych H2, nie określając żadnego użytkownika ani hasła w adresie URL JDBC.Jaka jest domyślna nazwa użytkownika i hasło dla h2, gdy w JDBC nie ma nic jawnego?

Teraz próbuję uzyskać dostęp do tej bazy danych za pomocą narzędzia Skrypt. Dokument mówi, że należy użyć -user sa w domyślnym przypadku. To nie działa i nadal nie działa, jeśli dodam -password sa lub usuniemy -user. czego mi brakuje?

/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) 

Odpowiedz

30

Cóż, duh, to nie trwało długo.

Odpowiedź brzmi: -user "".

+2

Istnieje przymusowa zwłoka w zaakceptowaniu własnej odpowiedzi. Gdybym nie myślał, że jakaś inna osoba będzie dość prawdopodobne, aby wkroczyć w tę konkretną dziurę, po prostu usunąłbym całą firmę, ale jak sądzę, istnieje pewna szansa na użyteczność. – bmargulies

+0

To było naprawdę przydatne dla mnie. Cieszę się, że trzymałeś pytanie i odpowiedź. – HRJ

11

Może to działa:

name = "sa" 
password = "" 
+0

@Ruddy Myślę, że tak, czy jest to dobra odpowiedź, czy nie, jest kwestią głosowania w górę lub w dół. –

+0

Chociaż może to odpowiedzieć na pytanie, zawsze dobrze jest umieścić tekst w odpowiedzi, aby wyjaśnić, co robisz. Przeczytaj [jak napisać dobrą odpowiedź] (http://stackoverflow.com/help/how-to-answer). – jurgemaister

2

W przypadku, gdy utknął z domyślnym niepusty użytkownik po uruchomieniu klienta, pełny zestaw parametrów będzie Ci przeszłość:

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

spróbuj tego:

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

Należy rozważyć dodanie kontekstu wokół kodu, zamiast publikowania odpowiedzi tylko kodu. – ppperry

+0

Ta odpowiedź jest niepoprawna i nadmiarowa. Zobacz zaakceptowaną odpowiedź. – bmargulies

Powiązane problemy