前段时间发生了件怪事,线上的dm数据库在项目启动时,时不时就会报某张表的建表语句在 'on' 字段附近出现问题,导致项目启动失败。我打开建表脚本一看,也没问题啊!打开线上的dm管理工具,发现注释都添加不起了,怪事!
于是百度,无果,果然这种不是主流的数据库还是得去社区才能搜到答案。在兜兜转转搜了半天+百度相关问题后终于汇总成了这篇文章的解决方案。仅供新手参考,如果你的dm数据库也提示这个错误,那或许就是这个原因~
1.查看数据库设置的保留字是否包含 'comment'
打开你的 DM管理工具,新建查询,输入以下内容:
select * from v$dm_ini where para_name like '%EXCLUDE_RESERVED_WORDS%';
然后下发就会出现如下结果:
如果都是NULL那恭喜你,你可以退出这篇文章了,跟保留字没关系,嘻嘻
但是如果下方出现了 COMMENT,comment 的话,那说明有内鬼把这两个字段设置成关键字了(我到现在还没有找到我们项目上的内鬼,可恶啊)
如果你找不到 DM管理工具 在哪,你可以这样操作:
(我这个是win11,win10也差不多)
- 点击windows键,或者按键盘上的win键,然后点击所有应用:
- 找到 D 这栏,找到 达梦数据库 这个文件夹:
- DM管理工具 就在这儿:
- ps:此外,还有另一种方式查看数据库的保留字(本质原理和sql查询一样)
在你找到 DM管理工具 的页面,选择 DM控制台工具 :
按如下操作查看该栏的值是否包含 COMMENT,comment
2.修改配置文件,删除相关保留字
在dm社区里面的回答基本上就只到上面那一步了,但是最后怎么修改好像大家都会一样,也没见哪个人发下步骤,现在这些就是我一步步踩坑摸出来的步骤:
2.1 停止DM数据库服务
要修改配置文件,必须先停止数据库服务,否则会提示有程序在使用,配置文件修改失败
同样的,在你找到DM管理工具的页面,打开 DM服务查看器:
鼠标右键这个项目,然后选择停止
2.2修改你的DM配置文件
或者直接使用 everything 搜索 dm.ini
打开后使用 CTRL+F 搜索 EXCLUDE_RESERVED_WORDS
这里正常情况下应该什么都没有,如果有 COMMENT,comment 将其删除即可,删除完成后请进行保存。
保存时可能会出现以下两种情况:
- 这个时候是提示你没有权限保存,直接无脑点是即可
=============================================================================
- 然后你再次保存时就会出现该提示,提示的原因就是你达梦的服务没有停,请参照2.1的操作停止数据库服务
通过以上步骤,那恭喜你,该bug就解决了。但是别忘了重启达梦服务~~
2.3重启DM数据库服务
回到 DM服务查看器 鼠标右键选择重新启动
3.结语
经过以上操作,该bug基本上就解决了,但是目前已知出现的情况有:DM管理工具可以连上数据库,但是idea提示连接超时。这个问题目前暂时没搞懂什么原因,可能网络卡了吧,但是过一段时间就ok了,而且有的时候又不会出现这个情况,反正奇奇怪怪的。