達蒙數(shù)據(jù)庫
數(shù)據(jù)庫安裝部署
下載地址:產(chǎn)品下載 | 達夢數(shù)據(jù)庫
安裝博客地址:安裝前準備 | 達夢技術文檔
到官網(wǎng)docker部署那一章節(jié),下載鏡像tar包,上傳到服務器上后,運行下面的命令
docker安裝啟動腳本:
docker run -d -p 5236:5236 \
--restart=always \
--name dm8_01 \
--privileged=true \
-e CASE_SENSITIVE=0 \
-e UNICODE_FLAG=1 \
-e LENGTH_IN_CHAR=1 \
-e PAGE_SIZE=16 \
-e LD_LIBRARY_PATH=/opt/dmdbms/bin \
-e INSTANCE_NAME=dm8_01 \
-v /data/dm8_01:/opt/dmdbms/data \
dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
說明:
-
CASE_SENSITIVE=0 設置大小寫不敏感
-
LENGTH_IN_CHAR=1 VARCHAR 類型對象的長度以字符為單位
-
UNICODE_FLAG 字符集 (0),可選值: 0[GB18030], 1[UTF-8], 2[EUC-KR]
備注:安裝好達夢數(shù)據(jù)庫后,需要新建庫名、新建用戶、分配這個用戶的權限和所擁有的庫
mysql遷移到達夢
-
dm.ini
修改兼容參數(shù)在遷移數(shù)據(jù)之前,需要修改 DM 數(shù)據(jù)庫參數(shù),修改兼容參數(shù)為兼容 MySQL 數(shù)據(jù)庫 COMPATIBLE_MODE=4 ,重啟數(shù)據(jù)庫服務使其生效即可
-
遷移工具設置映射字段修改
數(shù)據(jù)類型映射 -> MySQL/DM -> 源數(shù)據(jù)類型名(DOUBLE)映射到 目的數(shù)據(jù)類型名(VARCHAR)
java適配
添加驅(qū)動
此驅(qū)動可直接網(wǎng)絡下載到本地maven倉庫
<!-- 添加 達夢數(shù)據(jù)庫 驅(qū)動-->
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.2.79</version>
</dependency>
jpa服務
event
、app
、fileupload
服務
- 進入到本地的安裝目錄
dmdbms8/drivers/jdbc/dialect
,上傳對應版本的方言包到本地倉庫
mvn install:install-file -DgroupId=com.dameng -DartifactId=DmDialect-for-hibernate -Dversion=5.4 -Dpackaging=jar -Dfile=DmDialect-for-hibernate5.4.jar
-
配置文件添加對應的方言配置
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect spring.jpa.database-platform=org.hibernate.dialect.DmDialect
mysql和達夢數(shù)據(jù)庫的差別
達夢開發(fā)指南
https://eco.dameng.com/document/dm/zh-cn/sql-dev/practice-single-table.html
關鍵字
-
查詢字段不能是admin、damain、order,否則報錯
-
達夢不支持LocalDateTime,需要適配(兩種方案)
-
第一種:common包中添加適配類
-
第二種:使用最新的達夢在線驅(qū)動依賴包并去掉druid依賴
-
語法兼容
-
創(chuàng)建表的時候,不支持在列的后面直接加 comment 注釋,使用 COMMENT ON IS 代替,如:
COMMENT ON TABLE xxx IS xxx COMMENT ON COLUMN xxx IS xxx
-
字段不支持反引號``包裹(mysql可兼容)
-
查詢字段不允許雙引號包裹,如,
SELECT vc_direct AS "direct"
(mysql可兼容) -
like "%xxx%"
會報錯,使用單引號包裹like '%xxx%'
(mysql可兼容) -
date_sub(date,INTERVAL expr type), expr 在達夢中需要加單引號(mysql可兼容)
如:
date_sub(now(),interval '6' month)
-
達夢數(shù)據(jù)庫保錯‘-2685:試圖在blob或者clob列上排序或比較’,達夢數(shù)據(jù)庫對大字段排序默認是會報錯的,需要修改配置,執(zhí)行一下語句修改即可
sp_set_para_value(1,‘ENABLE_BLOB_CMP_FLAG’,1);文章來源:http://www.zghlxwxcb.cn/news/detail-414874.html -
if語句不支持帶有表達式的值(如:if(?3 is not null, direct = ?3, 1 = 1)),所以需要轉(zhuǎn)換成
if(?3 is not null, if(direct = ?3, 1, 0), 1)這樣;(mysql可兼容)文章來源地址http://www.zghlxwxcb.cn/news/detail-414874.html
到了這里,關于docker安裝達夢數(shù)據(jù)庫最佳實踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!