'What is the default username and password for h2 when there's nothing explicit in JDBC?
From a program, I created a H2 database without specifying any user or password in the JDBC URL.
Now I'm trying to access that database with the Script tool. The doc says to use -user sa in the default case. That doesn't work, and it still doesn't work if I either add -password sa or remove -user. What am I missing?
/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)
Solution 1:[1]
This might work:
name = "sa"
password = ""
Solution 2:[2]
In case you got stuck with the default non-blank user when running the client, the full set of parameters will get you past that:
java -cp <path_to_h2>\h2.jar org.h2.tools.Shell -url "jdbc:h2:file:<jdbc_url>" -driver "org.h2.Driver" -user "" -password ""
Solution 3:[3]
In your application.properties file please add
spring.datasource.username=username
spring.datasource.password=password
hope it helps
Solution 4:[4]
Note: If you are getting this error when trying to login via Intellij, you need to enable MIXED_MODE. See this answer for more details: Connect to H2 database using IntelliJ database client
Solution 5:[5]
in my case i had mispelled the username and password properties, so i assume spring tried to use the defaults which didn't work
Solution 6:[6]
I don't know if it helps, but I had a case in which, using H2 in memory for testing, the connection failed if I tried to connect with different credentials multiple times. This test:
public class H2Test {
@Test
public void differentCredentials() throws SQLException {
connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "foo", "");
connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "bar", "");
}
private void connect(
String url, String username, String password
) throws SQLException {
Properties props = new Properties();
props.put("user", username);
props.put("password", password);
DriverManager.getConnection(url, props);
}
}
fails with error:
org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-196]
This instead doesn't:
public class H2Test {
@Test
public void sameCredentials() throws SQLException {
connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "foo", "");
connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "foo", "");
}
private void connect(
String url, String username, String password
) throws SQLException {
Properties props = new Properties();
props.put("user", username);
props.put("password", password);
DriverManager.getConnection(url, props);
}
}
That said, I couldn't find a piece of documentation that confirms this behaviour.
Solution 7:[7]
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Stefan van den Akker |
| Solution 2 | radekbaranowski |
| Solution 3 | Ahmed |
| Solution 4 | Janac Meena |
| Solution 5 | notacorn |
| Solution 6 | Milad |
| Solution 7 | Lova Chittumuri |

