麒麟系统kylinServerV10中在docker中安装达梦数据库
一、下载docker镜像安装包
http://download.dameng.com/eco/dm8/dm8_20250206_x86_rh6_rq_single.tar
二、导入达梦Docker镜像
将下载好的tar文件上传至 /root/dm8/tar_file/ (自己建的目录 )
执行
docker load -i /root/dm8/tar_file/dm8_20250206_x86_rh6_rq_single.tar

检查镜像是否导入成功
docker images

三、启动达梦数据库容器
docker run -d --name dm8 -p 5236:5236 -v /opt/dmdbms/data:/opt/dmdbms/data dm8:dm8_20250206_rev257733_x86_rh6_64
其中 dm8:dm8_20250206_rev257733_x86_rh6_64 为 图中的 REPOSITORY 和 TAG

四、进入容器
docker exec -it dm8 /bin/bash
五、初始化数据库实例(在容器内操作):
cd /opt/dmdbms/bin
六、指定数据存储路径
./dminit PATH=/opt/dmdbms/data # 指定数据存储路径

七、设置用户名密码
指定两个用户的密码:
./dminit PATH=/opt/dmdbms/data \ SYSDBA_PWD=Dameng123! \ #系统管理员 SYSAUDITOR_PWD=Auditor@123 #安全审计员
在一行内执行
./dminit PATH=/opt/dmdbms/data SYSDBA_PWD=Dameng123! SYSAUDITOR_PWD=Auditor@123
如果出现这个说明已经在运行,需要先停止

ps -ef | grep dmserver # 查找正在运行的dmserver进程 kill -9 12345 # 停止该进程(使用实际PID替换12345) kill -9 dmserver # 或者强制停止所有dmserver进程

再执行,后一路 y 回车
./dminit PATH=/opt/dmdbms/data SYSDBA_PWD=Dameng123! SYSAUDITOR_PWD=Auditor@123


出现 success 后,退出容器。再从第二步开始,再来一遍
cd .. #退到上级目录 exit #退出docker容器
如果出现这个

说明已经有了 名叫 dm8 的 docker , 先把它删除了
docker ps -a #查看所有容器 docker rename dm8 dm8_backup # 将现有容器 dm8 重命名为 dm8_backup docker stop dm8 # 停止容器 docker rm dm8 # 删除容器

再从第三步 开始执行到 第六步


八、启动数据库服务
./dmserver /opt/dmdbms/data/DAMENG/dm.ini # 根据初始化路径调整
注:达梦官方镜像可能已配置自动启动服务,若未启动需手动执行。

确认数据库服务已启动
ps -ef | grep dmserver

九、使用 disql 连接数据库
连接数据库命令
./disql 'SYSDBA/Dameng123!@localhost:5236'

SELECT * FROM v$version; # 查看数据库版本 SELECT USER; # 查看当前用户 EXIT; # 退出

至此达梦数据库安装完成
如果没有设置密码 就使用 disql 连接数据库,会出现连接失败,此时需要重新设置密码
./disql SYSDBA/SYSDBA@localhost:5236

出现上图说明 SYSDBA 的用户名和密码 错误
重新设置密码
1.停止正在运行的数据库实例
# 查找正在运行的dmserver进程 ps -ef | grep dmserver # 如果找到类似这样的进程: # root 12345 1 0 10:00 ? 00:00:00 /opt/dmdbms/bin/dmserver /opt/dmdbms/data/DAMENG/dm.ini # 停止该进程(使用实际PID替换12345) kill -9 12345 # 或者强制停止所有dmserver进程 kill -9 dmserver

2. 清理残留文件
# 删除实例锁文件 rm -f /opt/dmdbms/data/DAMENG/dm.ctl.lock # 删除临时文件 rm -f /opt/dmdbms/data/DAMENG/*.tmp

3. 等待几秒后重新初始化
若没有进入容器,先进入容器
docker exec -it dm8 /bin/bash
执行
cd /opt/dmdbms/bin

在初始化命令中同时指定两个用户的密码:
./dminit PATH=/opt/dmdbms/data \ SYSDBA_PWD=Dameng123! \ #系统管理员 SYSAUDITOR_PWD=Auditor@123 #安全审计员
或在一行执行
./dminit PATH=/opt/dmdbms/data SYSDBA_PWD=Dameng123! SYSAUDITOR_PWD=Auditor@123
根据提示一路按 y 回车


最后看到 create dm database success 字样,则说明创建成功
启动数据库服务
./dmserver /opt/dmdbms/data/DAMENG/dm.ini


再次连接数据库
查看正在运行的dmserver进程
ps -ef | grep dmserver

说明 达梦数据库已经正在运行
进入容器
docker exec -it dm8 /bin/bash
进入容器后,进入此目录 下
cd /opt/dmdbms/bin

执行连接数据库命令后出现 event not found 的错误,是因为 密码中包含特殊字符 ! 需要 使用单引号包裹整个连接字符串
连接数据库命令:
./disql 'SYSDBA/Dameng123!@localhost:5236'

连接成功后的操作验证
# 查看数据库版本 SELECT * FROM v$version; # 查看当前用户 SELECT USER; # 退出 EXIT;


浙公网安备 33010602011771号