麒麟系统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  # 指定数据存储路径

image

七、设置用户名密码

指定两个用户的密码:

./dminit PATH=/opt/dmdbms/data \
         SYSDBA_PWD=Dameng123! \           #系统管理员
         SYSAUDITOR_PWD=Auditor@123    #安全审计员

在一行内执行

./dminit PATH=/opt/dmdbms/data SYSDBA_PWD=Dameng123!  SYSAUDITOR_PWD=Auditor@123

如果出现这个说明已经在运行,需要先停止

image

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

image

 再执行,后一路 y 回车

./dminit PATH=/opt/dmdbms/data SYSDBA_PWD=Dameng123!  SYSAUDITOR_PWD=Auditor@123

image

image

 出现 success 后,退出容器。再从第二步开始,再来一遍

cd ..     #退到上级目录
exit      #退出docker容器

如果出现这个

image

 说明已经有了 名叫 dm8 的 docker , 先把它删除了

docker ps -a    #查看所有容器
docker rename dm8 dm8_backup  # 将现有容器 dm8 重命名为 dm8_backup
docker stop dm8  # 停止容器
docker rm dm8  # 删除容器

image

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

image

image

八、启动数据库服务

./dmserver /opt/dmdbms/data/DAMENG/dm.ini  # 根据初始化路径调整

注:达梦官方镜像可能已配置自动启动服务,若未启动需手动执行。

确认数据库服务已启动

ps -ef | grep dmserver

九、使用 disql 连接数据库 

连接数据库命令 

./disql 'SYSDBA/Dameng123!@localhost:5236'

image

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

image

至此达梦数据库安装完成

如果没有设置密码 就使用 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;

 

posted @ 2025-07-08 15:03  海乐学习  阅读(470)  评论(0)    收藏  举报