2012-01-01 72 views
23

Desde un programa, creé una base de datos H2 sin especificar ningún usuario o contraseña en la URL JDBC.¿Cuál es el nombre de usuario y la contraseña predeterminados para h2 cuando no hay nada explícito en JDBC?

Ahora intento acceder a esa base de datos con la herramienta Script. El documento dice que use -user sa en el caso predeterminado. Eso no funciona, y todavía no funciona si agrego -password sa o elimino -user. ¿Qué me estoy perdiendo?

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

Respuesta

30

Bueno, duh, eso no tardó mucho.

La respuesta es -user "".

+2

Existe un retraso forzoso en la aceptación de la propia respuesta. Si no creyera que otra persona es bastante probable que se meta en este agujero en particular, simplemente habría eliminado todo el asunto, pero tal como está, creo que hay alguna posibilidad de utilidad. – bmargulies

+0

Esto fue realmente útil para mí. Me alegro de que haya guardado la pregunta y haya contestado. – HRJ

11

Esto podría funcionar:

name = "sa" 
password = "" 
+0

@Ruddy Creo que sí, ya sea que sea o no una buena respuesta es cuestión de votos positivos o negativos. –

+0

Si bien esto puede responder a la pregunta, siempre es una buena idea poner algo de texto en su respuesta para explicar lo que está haciendo. Lea [cómo escribir una buena respuesta] (http://stackoverflow.com/help/how-to-answer). – jurgemaister

2

En caso de que quedó atascado con el usuario por defecto no está en blanco cuando se ejecuta el cliente, el conjunto completo de parámetros le conseguirá pasado que:

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

intente esto:

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

Considere agregar algo de contexto alrededor de su código, en lugar de publicar una respuesta de solo código. – ppperry

+0

Esta respuesta es incorrecta y redundante. Ver la respuesta aceptada. – bmargulies

Cuestiones relacionadas