H2 数据库配置DATABASE_TO_UPPER区分大小写无效
本文最后更新于 173 天前,其中的信息可能已经有所发展或是发生改变。

刚接触这个h2内存数据库,被这个问题折腾2天了,我使用的是mybatis-plus,而H2默认 表名、列名都是大写,和mybatis plus默认的策略有冲突(SQL大写变小写加下划线),虽然可以配置关闭掉,但全部大写还是看着不习惯......

所以百度搜了下关闭的方法,在url链接上加上 DATABASE_TO_UPPER=FALSE 就行了,但这问题就来了,由于我加了 AUTO_SERVER=TRUE  也就是混合模式,在idea中修改数据就会

报错:

[90079][90079] org.h2.jdbc.JdbcSQLSyntaxErrorException: Schema "information_schema" not found; SQL statement:
select catalog_name from information_schema.catalogs [90079-200].
Schema "information_schema" not found; SQL statement:
select catalog_name from information_schema.catalogs [90079-200]
(458 ms)

解决办法

后面搜索到 github同样有人遇到了这个问题,给出的解决方法是使用 DATABASE_TO_LOWER=TRUE 参数。记得删除原来的库重新生成

我的配置如下:

spring.datasource.url=jdbc:h2:./db/qq_bot;DATABASE_TO_LOWER=TRUE;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9092;USER=sa;PASSWORD=sa;
#spring.datasource.h2.username=admin
#spring.datasource.h2.password=admin
spring.datasource.h2.driver-class-name=org.h2.Driver

至于我为啥把用户名密码配置在url里.......

 

使用H2需要注意的问题

1、如果修改了url配置,原来的数据库要删除重新生成,因为在第一次创建数据库的时候就写死了,无法修改。

2、关于混合模式,我一直以为配置了,AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9092; 就可以使用tcp直接连接进行修改了,虽然端口开放了但会说密码错误其实只是可以使用相同的url再次连接而已。

参考文章:

https://github.com/h2database/h2database/issues/485

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇