You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Play 2.7中查看嵌入式H2数据库内容?含认证问题求助

我来帮你搞定在Play 2.7里查看嵌入式H2数据库内容的问题,顺便解决你遇到的认证报错:

一、正确查看嵌入式H2内存库的步骤

嵌入式H2内存数据库是依附于Play应用的JVM进程存在的,所以必须让H2浏览器和应用运行在同一个进程里才能访问到它——分开跑sbt run和sbt h2-browser是行不通的,因为它们是两个独立进程。下面是两种靠谱的方法:

方法1:通过Play控制器启动H2浏览器

这种方式最直观,步骤如下:

  • 在项目里新建一个控制器类,用来启动H2的Web浏览器:
import org.h2.tools.Server
import play.api.mvc.{Action, ControllerComponents}
import javax.inject._

@Singleton
class H2ConsoleController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {
  def launch = Action {
    // 启动H2 Web浏览器,端口设为8082(可自定义)
    Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start()
    Ok("H2浏览器已启动,请访问 http://localhost:8082")
  }
}
  • 在conf/routes文件中添加对应的路由:
GET     /h2-console       controllers.H2ConsoleController.launch
  • 启动Play应用(执行sbt run),待应用完全启动后,访问http://localhost:9000/h2-console(假设Play默认端口是9000),会看到H2浏览器启动提示。
  • 打开http://localhost:8082,在H2登录界面填写连接信息:
    • JDBC URL:jdbc:h2:mem:play(和配置文件保持一致)
    • 用户名:sa
    • 密码:留空

方法2:在sbt中同进程启动应用和H2浏览器

如果你不想新增控制器,可以修改sbt配置,让应用启动时自动在同进程内启动H2浏览器:

  • 确保project/plugins.sbt中有sbt-h2插件(没有的话就添加):
addSbtPlugin("com.typesafe.sbt" % "sbt-h2" % "1.0.0")
  • 在build.sbt中添加钩子配置:
playRunHooks += baseDirectory.map(H2BrowserHook.apply).value

之后执行sbt run,H2浏览器就会和应用在同一个进程里自动启动。

二、解决H2认证错误(Wrong user name or password [28000-199])

你遇到的这个报错,大概率是配置里的小细节问题:

  1. 配置文件的URL带了多余引号:
    你的配置写的是db.default.url="jdbc:h2:mem:play",但Play的application.conf中字符串配置不需要加双引号——加引号后实际JDBC URL会变成带引号的"jdbc:h2:mem:play",和你在H2浏览器里输入的jdbc:h2:mem:play不匹配,导致找不到数据库,进而触发认证错误。
    修正后的配置应该是:
    db.default.driver=org.h2.Driver
    db.default.url=jdbc:h2:mem:play
    db.default.user=sa
    db.default.password=
    
  2. 数据库未完成初始化:
    play-slick是懒加载机制,如果你还没触发任何数据库操作(比如访问某个查询数据的接口),内存数据库可能还没被创建,这时候连接也会报错。解决方法是:启动应用后,先访问一个会和数据库交互的端点,确保数据库初始化完成,再去连接H2浏览器。
额外注意事项
  • 内存数据库的数据会随着Play应用停止而丢失,查看数据时要确保应用处于运行状态。
  • 你的环境配置(Scala 2.13、play-slick 4.0.2、H2 1.4.199)是兼容的,不需要调整版本。

内容的提问来源于stack exchange,提问作者Jethro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:33:21