从程序中,我创建了一个H2数据库,而没有在JDBC URL中指定任何用户或密码.
现在我正在尝试使用脚本工具访问该数据库.该文档说-user sa在默认情况下使用.这不起作用,如果我添加-password sa或删除它仍然不起作用-user.我错过了什么?
/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)
Run Code Online (Sandbox Code Playgroud) 要么我错过了一些核心概念,这些概念深埋在一些文档中(Spring,Spring Boot,H2,HSQLDB,Derby,IntelliJ),或者我已经盯着这个太久了.
我有一个Spring Boot项目.尝试首先使用和初始化H2数据库,尝试在IntelliJ中连接它只是为了意识到我可能无法轻松浏览数据库而不放弃我的长子(使用IntelliJ数据库客户端连接到H2数据库).
所以我搬到了DerbyDB.同样的事情 - db root文件夹是在我的应用程序中创建的,我在IntelliJ中连接到它,但我刚刚启动应用程序创建的表格无法浏览.
我甚至尝试过SQLite,但对SQLite的支持不是很好,并且某些更新功能不可用,但我至少可以在IntelliJ浏览器中找到我的表格!
我只想要一个简单的单个文件嵌入式数据库,我可以轻松地使用,浏览和播放.有什么建议?!
当我运行应用程序时,我看到模式已导出:
2015-07-19 09:37:45.836 INFO 98608 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export
Hibernate: drop table user_roles if exists
Hibernate: drop table users if exists
Hibernate: create table user_roles (id bigint generated by default as identity, role_name varchar(255), version bigint, user_id bigint, primary key (id))
Hibernate: create table users (id bigint generated by default as identity, email varchar(255), password varchar(255), username varchar(255), version bigint, primary key (id)) …Run Code Online (Sandbox Code Playgroud) 在Spring Boot项目中,我试图从我的IDE中查看内存中的表。
如何从Intellij IDEA访问内存中的h2数据库。
这是我的application.yml中的片段:
h2:
datasource:
url: jdbc:h2:mem:mydb
username: username
password: 123
driver-class-name: org.h2.Driver
init-sql: h2.sql
console:
enabled: true
path: /search/console
settings:
trace: false
web-allow-others: false
Run Code Online (Sandbox Code Playgroud)
Intellij没有字段可输入内存数据库的用户名:
测试连接显示成功,但是看不到h2.sql中的表。我可以使用h2控制台访问它们。