docker内安装达梦8数据库

发布于:2025-04-11 ⋅ 阅读:(39) ⋅ 点赞:(0)

1. 其他机器上实现挂载ISO

# 1. 确保挂载点目录存在(你已经创建了dm8目录)
ls -ld dm8

# 2. 使用正确的mount命令挂载ISO
sudo mount -o loop dm8_20250117_HWarm920_kylin10_sp1_64.iso dm8

# 3. 验证是否挂载成功
mount | grep dm8
ls dm8

2. docker内运行安装程序

# 可能需要先设置执行权限
chmod +x DMInstall.bin
# 运行图形化安装或命令行安装
./DMInstall.bin -i  # 交互式命令行安装

解决错误–注意路径要求,不能包含"-":

Please Input the install path [/home/ma-user/dmdbms]:/home/ma-user/work/dmdbms      
The path is invalid. Valid characters contain lower case letter(a-z), upper case letter(A-Z), digit(0-9), underline(_), space( ), and Chinese.
No write permission!  docker内部 详解

3. 达梦数据库连接问题深度排查与解决方案

根据您提供的信息,系统存在多个关键问题需要解决。以下是详细分析和解决方案:

核心问题诊断

  1. 数据库服务未运行

    • DmServiceDMSERVER服务不存在
    • DmAPService是辅助服务,不是主数据库服务
    • 5236端口未监听证实数据库未正常运行
  2. 系统环境异常

    • 非systemd初始化系统(可能是容器环境)
    • 缺少防火墙管理工具
    • 关键配置文件缺失

解决方案

第一步:确认数据库安装完整性

# 检查安装目录结构
ls -l /home/syl/dmdbms/bin/ | grep -E 'dmserver|DmService'

# 查找数据库服务可执行文件
find /home/syl/dmdbms/ -name "dmserver"

第二步:手动启动数据库服务

如果找到dmserver可执行文件:

# 创建数据目录(如果不存在)
mkdir -p /home/syl/dmdbms/data/DAMENG

# 初始化数据库(如果未初始化)
/home/syl/dmdbms/bin/dminit path=/home/syl/dmdbms/data

# 手动启动数据库服务
/home/syl/dmdbms/bin/dmserver path=/home/syl/dmdbms/data/DAMENG/dm.ini

4. 达梦数据库初始化问题解决方案

您遇到的问题是在初始化达梦数据库时未设置SYSDBA密码导致的失败。以下是完整的解决步骤:

1. 正确初始化数据库

使用以下命令初始化数据库,并设置SYSDBA密码:

/home/syl/dmdbms/bin/dminit PATH=/home/syl/dmdbms/data SYSDBA_PWD=L12qwerL SYSAUDITOR_PWD=SyS123Audit CASE_SENSITIVE=0 CHARSET=1 LOG_SIZE=1024 PORT_NUM=5236

错误分析:dminit 加载共享库失败

错误信息

/home/syl/dmdbms/bin/dminit: error while loading shared libraries: libdmnsort.so: cannot open shared object file: No such file or directory

错误原因

这个错误表明当尝试运行达梦数据库(DM8)的初始化工具dminit时,系统无法找到所需的共享库文件libdmnsort.so。这通常是由于以下原因之一:

  1. 环境变量未正确设置:系统不知道在哪里查找达梦数据库的库文件
  2. 库文件缺失libdmnsort.so文件可能未被正确安装或已损坏
  3. 权限问题:当前用户可能没有访问库文件的权限

解决方案

方法1:设置LD_LIBRARY_PATH环境变量

最常见的原因是库路径未正确设置。达梦数据库的库文件通常位于安装目录的binlib子目录下。

# 临时设置(仅当前会话有效)
export LD_LIBRARY_PATH=/home/syl/dmdbms/bin:$LD_LIBRARY_PATH

# 然后再次运行dminit
/home/syl/dmdbms/bin/dminit PATH=/home/syl/dmdbms/data SYSDBA_PWD=L12qwerL SYSAUDITOR_PWD=SyS123Audit CASE_SENSITIVE=0 CHARSET=1 LOG_SIZE=1024 PORT_NUM=5236

要使设置永久生效,可以将上述export命令添加到~/.bashrc~/.bash_profile文件中。

方法2:检查库文件是否存在

确认库文件确实存在于系统中:

find /home/syl/dmdbms -name "libdmnsort.so"

如果找不到该文件,可能需要重新安装达梦数据库软件。

2. 参数说明

  • PATH:数据库数据文件存放路径
  • SYSDBA_PWD:必须包含大小写字母和数字,长度8-48位
  • CASE_SENSITIVE:0表示不区分大小写
  • CHARSET:1表示UTF-8字符集
  • LOG_SIZE:日志文件大小(MB)
  • PORT_NUM:数据库服务监听端口

3. 初始化成功后启动数据库

# 启动数据库服务
/home/syl/dmdbms/bin/dmserver path=/home/syl/dmdbms/data/DAMENG/dm.ini &

# 验证服务是否运行
ps -ef | grep dmserver
netstat -tuln | grep 5236

5. 连接docker内达梦8数据库

/home/syl/dmdbms/bin/disql SYSDBA/L12qwerL@localhost:5236