1. 環境
1.1 操作系統
CentOS8.4最小化安裝
# cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
# cat /etc/redhat-release
CentOS Linux release 8.4.2105
1.2 下載達夢
https://package.dameng.com/eco/adapter/DM8/202110/dm8_20211021_x86_rh6_64_ent.zip
2. 准備
2.1 關閉SELINUX
# setenforce 0
# vi /etc/selinux/config
修改SELINUX=disabled
2.2 上傳達夢ISO
接下下載的達夢安裝包,里面包含一個ISO文件,將其上傳到CentOS的/tmp
路徑下
2.3 調整YUM源
由於CentOS8已經在2021年12月31日停止維護,所以官方YUM已經無法使用,我們將其換成阿里源
# mkdir /etc/yum.repos.d/unuseable
# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/unuseable
# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-8-stream - Base - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official#additional packages that may be useful
[extras]
name=CentOS-8-stream - Extras - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-8-stream - Plus - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official[PowerTools]
name=CentOS-8-stream - PowerTools - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official[AppStream]
name=CentOS-8-stream - AppStream - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
# yum clean all
# yum makecache
2.3 安裝達夢所需圖形類庫
# yum install -y gtk2 libXtst xorg-x11-fonts-Type1
3. 安裝
3.1 掛載ISO
# mount /tmp/dm8_20211021_x86_rh6_64_ent_8.1.2.84.iso /mnt
3.2 安裝
# cd /mnt
# ./DMInstall.bin -i
請選擇安裝語言(C/c:中文 E/e:英文) [C/c]:C
解壓安裝程序.........
(省略部分內容...)
歡迎使用達夢數據庫安裝程序
是否輸入Key文件路徑? (Y/y:是 N/n:否) [Y/y]:N
是否設置時區? (Y/y:是 N/n:否) [Y/y]:Y
(省略部分內容...)
請選擇設置時區 [21]:21
安裝類型:
1 典型安裝
2 服務器
3 客戶端
4 自定義
請選擇安裝類型的數字序號 [1 典型安裝]:2
所需空間: 734M
請選擇安裝目錄 [/opt/dmdbms]:/opt/dm
可用空間: 43G
是否確認安裝路徑(/opt/dm)? (Y/y:是 N/n:否) [Y/y]:Y
安裝前小結
安裝位置: /opt/dm
所需空間: 734M
可用空間: 43G
版本信息:
有效日期:
安裝類型: 服務器
是否確認安裝? (Y/y:是 N/n:否):Y
2022-02-24 16:57:02
[INFO] 安裝達夢數據庫...
2022-02-24 16:57:02
[INFO] 安裝 基礎 模塊...
2022-02-24 16:57:09
[INFO] 安裝 服務器 模塊...
2022-02-24 16:57:11
[INFO] 安裝 驅動 模塊...
2022-02-24 16:57:15
[INFO] 安裝 手冊 模塊...
2022-02-24 16:57:17
[INFO] 安裝 服務 模塊...
2022-02-24 16:57:19
[INFO] 移動日志文件。
2022-02-24 16:57:21
[INFO] 創建dmdba系統管理員完成。
2022-02-24 16:57:21
[INFO] 正在啟動DmAPService服務...
2022-02-24 16:57:22
[INFO] 啟動DmAPService服務成功。
2022-02-24 16:57:22
[INFO] 安裝達夢數據庫完成。安裝結束
3.3 查看服務
# systemctl status DmAPService
3.4 開機啟動
# systemctl enable DmAPService
4. 創建實例
# cd /opt/dm/bin
# ./dminit PATH=/opt/dm/data DB_NAME=YOUR_DB_NAME INSTANCE_NAME=YOUR_DB_INSTANCE_NAME SYSDBA_PWD=YOUR_PASSWORD PORT_NUM=YOUR_PORT
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-10-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /opt/dm/data/YOUR_DB_NAME/YOUR_DB_NAME01.log
log file path: /opt/dm/data/YOUR_DB_NAME/YOUR_DB_NAME02.log
write to dir [/opt/dm/data/YOUR_DB_NAME].
create dm database success. 2022-02-24 17:03:04
說明:
YOUR_DB_NAME
:數據庫名稱,替換成你想要的名字YOUR_DB_INSTANCE_NAME
:數據庫實例名稱,替換成你想要的名字YOUR_PASSWORD
:SYSDBA
的密碼,替換成你想要的密碼YOUR_PORT
:替換成你想要的端口
5. 將實例添加到服務
# cd /opt/dm/script/root
# ./dm_service_installer.sh -t dmserver -dm_ini /opt/dm/data/YOUR_DB_NAME/dm.ini -p YOUR_SUFFIX
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceYOUR_SUFFIX.service → /usr/lib/systemd/system/DmServiceYOUR_SUFFIX.service.
創建服務(DmServiceYOUR_SUFFIX)完成
# systemctl start DmServiceYOUR_SUFFIX
# systemctl enable DmServiceYOUR_SUFFIX
# systemctl status DmServiceYOUR_SUFFIX
如果執行systemctl start DmServiceYOUR_SUFFIX
的時候報錯可嘗試執行chown -R dmdba:dinstall /opt/dm/data/
后再試
說明:
YOUR_DB_NAME
:和上一步中的YOUR_DB_NAME
保持一致YOUR_SUFFIX
:服務后綴,最終生成的服務名為DmServiceYOUR_SUFFIX
6 關閉防火牆或開放端口
關閉防火牆
# systemctl stop firewalld && systemctl disable firewalld
開放端口,默認為5236
端口,如果你上面定義了YOUR_PORT
則需要改成你自己的端口
# firewall-cmd --zone=public --add-port=5236/tcp --permanent
# firewall-cmd --reload
7. 用IDEA訪問達夢
6.1 拷貝JDBC驅動
/opt/dm/drivers/jdbc
目錄下包含達夢的JDBC
驅動:
DmJdbcDriver16
對應 Jdk1.6 及以上環境DmJdbcDriver17
對應 Jdk1.7 及以上環境DmJdbcDriver18
對應 Jdk1.8 及以上環境
更多信息請查看# cat /opt/dm/drivers/jdbc/readme.txt
根據IDEA使用的JDK版本將對應的JDBC驅動拷貝到任意目錄
6.2 為IDEA添加數據庫驅動
8. 創建表空間、用戶
-- 查詢版本
SELECT * FROM v$version;
-- 查詢表空間
SELECT * FROM DBA_TABLESPACES;
-- 創建表空間
CREATE TABLESPACE YOUR_TABLESPACE_NAME DATAFILE 'YOUR_FILE_NAME.DBF' SIZE 300;
-- 查詢用戶
SELECT * FROM DBA_USERS;
-- 創建用戶
CREATE USER YOUR_USER_NAME IDENTIFIED BY "YOUR_PASS_WORD" DEFAULT TABLESPACE YOUR_TABLESPACE_NAME DEFAULT INDEX TABLESPACE YOUR_TABLESPACE_NAME;
-- 授權用戶
GRANT RESOURCE TO YOUR_USER_NAME;
說明:
YOUR_TABLESPACE_NAME
:表空間名稱,替換成你想要的名字YOUR_FILE_NAME
:表空間文件名稱,替換成你想要的名字YOUR_USER_NAME
:用戶名,替換成你想要的名字YOUR_PASS_WORD
:密碼,替換成你想要的密碼RESOURCE
:角色DBA
: 數據庫系統中對象與數據操作的最高權限集合,擁有構建數據庫的全部特權,只有 DBA 才可以創建數據庫結構RESOURCE
:可以創建數據庫對象,對有權限的數據庫對象進行數據操縱,不可以創建數據庫結構PUBLIC
:不可以創建數據庫對象,只能對有權限的數據庫對象進行數據操縱
9. 再次用IDEA訪問達夢
說明:
YOUR_USER_NAME
:上一步中的YOUR_USER_NAME
YOUR_PASS_WORD
:上一步中的YOUR_PASS_WORD
嘗試建表、CRUD、刪表
-- 創建表
CREATE TABLE TEST (ID INT IDENTITY, DESCRITION VARCHAR(20));
-- 插入數據
INSERT INTO TEST(DESCRITION) VALUES ('TEST');
-- 查詢數據
SELECT * FROM TEST;
-- 修改數據
UPDATE TEST SET DESCRITION = 'NEW TEST' WHERE ID = 1;
-- 刪除數據
DELETE FROM TEST WHERE ID = 1;
-- 刪除表
DROP TABLE TEST;