麒麟系统下 KingbaseES 安装报错排查与解决

📅 2026/7/10 8:54:16 👁️ 阅读次数 📝 编程学习
麒麟系统下 KingbaseES 安装报错排查与解决

问题描述

在麒麟操作系统上以命令行方式安装 KingbaseES 数据库时,执行./setup.sh后报错:严重: java.lang.RuntimeException: java.io.IOException: 没有那个文件或目录。

系统已预先安装 Java 环境,排除 Java 缺失导致的问题。

排查过程

确认 Java 环境正常

分别使用root用户和kingbase用户执行以下命令,验证 Java 可正常调用:

cd /mnt java -jar ./setup/installer.jar

两个用户下 Java 均可正常启动,说明Java 环境无问题,报错与 Java 本身无关。

检查用户家目录权限

根据 KingbaseES 安装要求,kingbase用户必须对其家目录/tmp目录拥有完整的读写权限。

ls -la /home/kingbase # 输出显示属主和属组均为 root,而非 kingbase

问题原因

  • 使用useradd kingbase创建用户时,可能因-M参数或系统模板配置导致系统未能自动生成/home/kingbase家目录。
  • 管理员手动执行mkdir -p /home/kingbase创建了该目录。目录属主为root,而非kingbase
  • 随后使用usermod -d /home/kingbase kingbase将家目录指向该路径。仅修改了/etc/passwd中的路径,未修正目录权限
  • 手动创建的目录属主默认为 root,并未自动变更为kingbase,执行./setup.sh导致安装程序因权限不足而报错IOException。

解决办法

/home/kingbase目录的属主和权限修改为正确的值:

su - root chown -R kingbase:kingbase /home/kingbase chmod -R 775 /home/kingbase

修改完成后,切换到kingbase用户重新执行安装:

su - kingbase cd /mnt ./setup.sh

安装程序正常运行,问题解决。