你执行 cd /home/dmdba/dm/dmdbms/script/root 时提示"无此文件或目录",核心原因是 你输入的目录路径与达梦数据库实际安装目录不匹配,路径中多了多余的 /dm 层级,且未准确对应初始化/安装时的实际目录,具体分析和解决方案如下:
一、报错核心原因解析
- 路径层级错误(核心) :你输入的路径是
/home/dmdba/dm/dmdbms/script/root,其中包含多余的/dm子目录,而达梦数据库的dmdbms目录(bin、script所在目录)直接在dmdba家目录下(即/home/dmdba/dmdbms),并非/home/dmdba/dm/dmdbms,多一层/dm导致无法找到目录。 - 混淆"安装目录"与"数据目录" :你之前通过
dminit初始化的数据库数据目录是/dm/dbdata/dmdata/DMDB(存放数据文件、配置文件),而script/root目录属于 达梦程序安装目录(存放脚本、工具、二进制文件),二者是不同目录,不可混淆。 - 路径记忆偏差 :达梦的
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个关键点
-
排查
dmdbms实际位置(确认达梦程序目录)先回到
dmdba家目录,查看dmdbms是否存在:bash# 进入 dmdba 家目录 cd /home/dmdba # 查看目录下是否有 dmdbms 文件夹 ll | grep dmdbms-
若存在
dmdbms目录,直接进入其script/root子目录即可; -
若不存在
dmdbms目录,说明达梦程序安装在其他路径(如/dm8),可扩大搜索范围:bashfind / -name "root_installer.sh" 2>/dev/null(
2>/dev/null用于屏蔽无权限访问的目录报错,只显示有效结果)
-
-
确认达梦是否完成完整安装(避免仅初始化未安装)
你之前仅执行了
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。
三、补充注意事项
- 权限要求 :仅
root用户可执行root_installer.sh,确保当前登录用户是root(或使用sudo执行); - 脚本作用 :该脚本会完成3个关键操作,不可跳过:
- 创建达梦系统服务(
dm.service),支持systemctl start/stop dm启动/停止数据库; - 配置系统环境变量(
DM_HOME),方便在任意目录执行达梦工具(disql、dminit等); - 修复数据库文件权限,避免后续启动报错;
- 创建达梦系统服务(
- 记录正确路径 :执行完成后,记录
dmdbms安装目录(如/home/dmdba/dmdbms),后续运维操作(执行脚本、更新工具)均需基于该目录。
四、总结
- 报错核心:路径多了多余
/dm层级,/home/dmdba/dm/dmdbms应为/home/dmdba/dmdbms; - 关键解决:用
find命令自动查找正确目录,或直接修正路径移除多余/dm; - 核心操作:找到
root_installer.sh并执行,完成达梦数据库的最终配置。
按照上述步骤操作后,即可顺利进入正确目录并执行 root 脚本,解决目录不存在的报错。