docker内安装达梦8数据库

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

6. 创建检测跟踪表格

START /home/ma-user/work/28suo_det_meeting/dm_background_server/sql_sh/create_det_track_db.sql 
### 使用 Docker Compose 安装达梦数据库 为了使用 Docker Compose 来安装并运行达梦数据库,需准备一个合适的 `docker-compose.yml` 文件来定义所需的服务、网络以及卷。此过程涉及编写特定于达梦数据库的配置项和服务依赖关系。 #### 准备工作 确保已正确安装 DockerDocker Compose 工具,并具备基本的操作权限。接着,在项目目录下创建一个新的 YAML 文件命名为 `docker-compose.yml`,用于描述服务架构[^2]。 #### 编写 docker-compose.yml 文件 下面是一个简单的例子展示如何设置该文件以启动达梦数据库实例: ```yaml version: '3' services: damengdb: image: dameng:latest container_name: dameng_container environment: - DM_SERVICE_NAME=dm_service - DM_PORT=5236 ports: - "5236:5236" volumes: - ./data:/dm8/data command: ["--initialize", "--param_file=/path/to/params.conf"] ``` 上述配置指定了要使用的镜像名称 (`dameng:latest`) 及版本标签;设置了容器名以便识别;通过环境变量传递必要的初始化参数给数据库引擎;映射主机端口到容器内部监听地址使得外部能够访问数据库服务;挂载本地存储路径至容器内数据保存位置从而实现持久化;最后提供自定义命令行选项完成进一步定制化需求[^1]。 #### 执行部署操作 当完成了以上准备工作之后就可以执行如下指令来进行实际的应用构建与启动流程了: ```bash docker-compose -f docker-compose.yml up -d ``` 这条语句会读取指定的组合文件(`-f` 参数),按照其中定义的内容自动拉取所需的镜像资源、建立关联网络结构及共享磁盘空间,最终把所有组件放到后台独立进程中持续运作起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值