麒麟系统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;