“数据库‘默认’处于不一致状态!”来来去去

Posted

技术标签:

【中文标题】“数据库‘默认’处于不一致状态!”来来去去【英文标题】:"Database 'default' is in inconsistent state!" comes and goes 【发布时间】:2013-07-09 18:46:17 【问题描述】:

我的问题是部署服务器上的play数据库进化一次又一次处于不一致的状态。我不明白有什么问题。

所有测试都运行良好(在内存中) 我可以通过运行(在内存中)启动应用程序 我删除了evolution sql-script,让它重新生成(通过点击浏览器的evolution trigger) 我在 conf 文件中为 mysql 访问切换了必要的属性 我使用play clean compile stage 开始构建 我删除并创建了 mysql 数据库 然后我使用 -DapplyEvolutions.default=true 启动应用程序

我经常得到这个错误:

[error] play - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sequence life_cycle_event_seq' at line 1 [ERROR:1064, SQLSTATE:42000]
Oops, cannot start the server.
@6epm5i5m6: Database 'default' is in inconsistent state!
    at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:177)
    at play.api.db.evolutions.Evolutions$.applyScript(Evolutions.scala:275)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:446)
    at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:483)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:439)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:437)
    at scala.collection.immutable.List.foreach(List.scala:309)
    at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:437)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
    at scala.collection.immutable.List.foreach(List.scala:309)
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:63)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
    at play.api.Play$.start(Play.scala:62)
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:54)
    at play.core.server.NettyServer$.createServer(NettyServer.scala:228)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:259)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:258)
    at scala.Option.map(Option.scala:145)
    at play.core.server.NettyServer$.main(NettyServer.scala:258)
    at play.core.server.NettyServer.main(NettyServer.scala)

在玩了整个过程之后突然就可以了。

【问题讨论】:

你能发布你用于进化的 sql 脚本吗?当您第一行说“在第 1 行 [ERROR:1064, SQLSTATE:42000] 附近 'sequence life_cycle_event_seq' 附近”时,可能有什么问题 sql 文件很大。文件中不存在这条语句sequence life_cycle_event_seq 【参考方案1】:

您应该在将配置切换到 mysql 之后生成进化脚本。

生成的脚本依赖于 RDBMS。在启动play clean compile stage之前需要使用正确的数据库引擎创建它

【讨论】:

以上是关于“数据库‘默认’处于不一致状态!”来来去去的主要内容,如果未能解决你的问题,请参考以下文章

系统进不去去,出现Booting from Hard Disk device

分布式技术专题「分布式缓存专题」针对性分析缓存与数据库一致性如何解决

make和makefile

不会编程,不会机器学习,来来来,试试OAC

来来来,我们聊一聊,为什么不建议使用递归操作?

随机抽样一致性算法(RANSAC)示例及源代码--转载