达梦数据库安装服务故障四

你执行 cd /home/dmdba/dm/dmdbms/script/root 时提示"无此文件或目录",核心原因是 你输入的目录路径与达梦数据库实际安装目录不匹配,路径中多了多余的 /dm 层级,且未准确对应初始化/安装时的实际目录,具体分析和解决方案如下:

一、报错核心原因解析

  1. 路径层级错误(核心) :你输入的路径是 /home/dmdba/dm/dmdbms/script/root,其中包含多余的 /dm 子目录,而达梦数据库的 dmdbms 目录(binscript 所在目录)直接在 dmdba 家目录下(即 /home/dmdba/dmdbms),并非 /home/dmdba/dm/dmdbms,多一层 /dm 导致无法找到目录。
  2. 混淆"安装目录"与"数据目录" :你之前通过 dminit 初始化的数据库数据目录是 /dm/dbdata/dmdata/DMDB(存放数据文件、配置文件),而 script/root 目录属于 达梦程序安装目录(存放脚本、工具、二进制文件),二者是不同目录,不可混淆。
  3. 路径记忆偏差 :达梦的 root 脚本目录(包含 root_installer.sh)固定在 安装目录/dmdbms/script/root,你之前的安装/初始化操作中,dmdbms 直接位于 dmdba 家目录,无额外层级。

二、分步解决方案(先找到正确目录,再执行root脚本)

步骤1:快速找到 script/root 正确目录(无需记忆,自动查找)

使用 find 命令在系统中搜索 root 脚本目录(或直接搜索 root_installer.sh,这是需要执行的核心脚本),避免手动输入路径出错:

bash 复制代码
# 方式1:搜索 script/root 目录(达梦专属脚本目录)
find /home/dmdba -path "*dmdbms/script/root"

# 方式2:直接搜索核心脚本 root_installer.sh(更精准,推荐)
find /home/dmdba -name "root_installer.sh"

执行后会输出类似如下正确路径(即为实际目录):

复制代码
/home/dmdba/dmdbms/script/root/root_installer.sh
步骤2:进入正确目录(修正路径,移除多余 /dm

根据上述搜索结果,使用正确路径执行 cd 命令,核心是移除多余的 /dm 层级:

bash 复制代码
# 正确目录:移除 /home/dmdba 后的多余 /dm,直接进入 dmdbms/script/root
cd /home/dmdba/dmdbms/script/root

执行后若不再报错,说明已成功进入正确目录,可直接查看 root_installer.sh 脚本:

bash 复制代码
# 验证目录下是否存在 root 脚本
ll

正常情况下会显示 root_installer.sh(达梦安装后必备的root权限脚本)。

步骤3:若仍报错(未找到目录),补充排查2个关键点
  1. 排查 dmdbms 实际位置(确认达梦程序目录)

    先回到 dmdba 家目录,查看 dmdbms 是否存在:

    bash 复制代码
    # 进入 dmdba 家目录
    cd /home/dmdba
    
    # 查看目录下是否有 dmdbms 文件夹
    ll | grep dmdbms
    • 若存在 dmdbms 目录,直接进入其 script/root 子目录即可;

    • 若不存在 dmdbms 目录,说明达梦程序安装在其他路径(如 /dm8),可扩大搜索范围:

      bash 复制代码
      find / -name "root_installer.sh" 2>/dev/null

      2>/dev/null 用于屏蔽无权限访问的目录报错,只显示有效结果)

  2. 确认达梦是否完成完整安装(避免仅初始化未安装)

    你之前仅执行了 dminit(数据库初始化),若未执行 DMInstall.bin 完成完整安装,可能缺少 script/root 目录(root_installer.sh 是安装程序生成的)。

    • 若缺少该目录,需回到达梦安装文件目录,重新执行完整安装:

      bash 复制代码
      # 进入安装文件所在目录(如 /mydm)
      cd /mydm
      
      # 以 dmdba 用户执行安装程序(完整安装后会生成 script/root 目录)
      ./DMInstall.bin
    • 安装完成后,终端会输出 root_installer.sh 的准确路径,直接复制该路径执行即可。

步骤4:执行 root 脚本(完成最终配置)

找到正确目录并进入后,执行达梦的 root 脚本(用于创建系统服务、配置环境变量等,必须以 root 用户执行):

bash 复制代码
# 执行 root 安装脚本(确保路径正确)
./root_installer.sh

执行成功后,会提示系统服务创建完成、环境变量配置成功等信息,此时达梦数据库可通过系统服务启动/停止,无需手动执行 dmserver

三、补充注意事项

  1. 权限要求 :仅 root 用户可执行 root_installer.sh,确保当前登录用户是 root(或使用 sudo 执行);
  2. 脚本作用 :该脚本会完成3个关键操作,不可跳过:
    • 创建达梦系统服务(dm.service),支持 systemctl start/stop dm 启动/停止数据库;
    • 配置系统环境变量(DM_HOME),方便在任意目录执行达梦工具(disqldminit 等);
    • 修复数据库文件权限,避免后续启动报错;
  3. 记录正确路径 :执行完成后,记录 dmdbms 安装目录(如 /home/dmdba/dmdbms),后续运维操作(执行脚本、更新工具)均需基于该目录。

四、总结

  1. 报错核心:路径多了多余 /dm 层级,/home/dmdba/dm/dmdbms 应为 /home/dmdba/dmdbms
  2. 关键解决:用 find 命令自动查找正确目录,或直接修正路径移除多余 /dm
  3. 核心操作:找到 root_installer.sh 并执行,完成达梦数据库的最终配置。

按照上述步骤操作后,即可顺利进入正确目录并执行 root 脚本,解决目录不存在的报错。

相关推荐
weixin_516023072 小时前
ssh配合密钥连接
服务器·网络·ssh
PPPPPaPeR.2 小时前
使用vim实现进度条(初级)
linux·编辑器·vim
纵有疾風起2 小时前
【Linux 系统开发】基础开发工具详解:自动化构建、版本控制与调试器开发实战
linux·服务器·开发语言·c++·经验分享·开源·bash
wtsolutions2 小时前
Advanced Features - Unlocking the Power of JSON to Excel Pro
linux·json·excel
尽兴-2 小时前
MySQL 8.0主从复制原理与实战深度解析
数据库·mysql·主从复制
Mr_sun.2 小时前
Day04——权限认证-基础
android·服务器·数据库
百锦再2 小时前
国产数据库现状与技术演进
数据库·python·plotly·flask·virtualenv·pygame·tornado
Kratzdisteln2 小时前
【linux】
linux·运维·服务器
阿豪只会阿巴2 小时前
项目心得——发布者和订阅者问题解决思路
linux·开发语言·笔记·python·ubuntu·ros2