达梦DM8服务方式启动报错:please change root or root to execute the service script, otherwise may be failed

本文讲述了在达梦DM8数据库从v8.1.2.84升级到v8.1.2.94时,服务启动失败的问题,通过检查发现服务文件中DM_HOME指向错误路径。解决方法是确保升级后bin目录下DmServiceDMSERVER脚本正确配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        达梦DM8数据库使用服务的方式启动数据库:$ ./DmServiceDMSERVER start报错:please change root or root to execute the service script, otherwise may be failed ! 按照报错信息使用root用户执行 systemctl start DmServiceDMSERVER 启动服务也报错失败。

【报错信息如下】

1.使用dmdba用户启动服务

2.使用root用户启动服务

 

【报错分析】

1.怀疑是root用户创建服务时不对,使用命令(# ./dm_service_uninstaller.sh -n DmServiceDMSERVER)删除服务后,再重建服务,报错信息一样,排除服务创建问题。

2.因为这套库是从版本(v8.1.2.84)升级到(v8.1.2.94)的,怀疑是不是bin目录下的DmServiceDMSERVER 启动服务文件有问题,果然,里面的DM_HOME路径变成了94版本的安装路径了,把DM_HOME路径中的94去掉后,服务正常启动了

【问题解决】

1.此问题是DM8 版本升级后的隐藏问题,故建议:在本地安装DM8 新版本数据库,并使用替换bin目录的方式升级DM8版本后,请检查服务文件/dm8/dmdbms/bin/DmServiceDMSERVER中的DM_HOME的信息是否被自动修改成新安装的目录了。

达梦数据库社区地址:https://eco.dameng.com/

### Redis 启动时因权限不足导致的错误解决方案 当遇到 `redis service failed to execute command permission denied` 的问题时,通常是由于以下几个原因引起的: #### 1. 文件或目录权限不正确 如果将 `redis-cli` 和 `redis-server` 拷贝到其他路径以便全局调用,则可能忘记设置可执行权限。可以通过以下命令修复该问题: ```bash chmod +x /path/to/redis-cli chmod +x /path/to/redis-server ``` 上述操作可以确保这两个文件具有可执行权限[^1]。 #### 2. SELinux 配置冲突 如果服务器上启用了 SELinux,可能会覆盖 POSIX 权限配置,从而导致权限被拒绝的情况发生。此时需要检查并调整 SELinux 设置: - 使用临时禁用来测试是否为 SELinux 导致的问题: ```bash setenforce 0 ``` - 如果确认是 SELinux 原因引起,可以选择永久关闭它或者重新定义策略。编辑 `/etc/selinux/config` 并将其更改为 `SELINUX=permissive` 或者 `SELINUX=disabled`[^3]。 #### 3. Docker 中运行 Redis 的权限问题 如果是通过 Docker 容器部署 Redis,并且遇到了类似的权限问题(例如挂载数据卷失败),则可能是未赋予容器足够的特权所致。可以在启动容器时增加 `--privileged=true` 参数来解决此类情况[^2]: ```bash docker run --name my_redis -v /host/path:/container/path --privileged=true redis:latest ``` #### 4. 用户组配置不当 对于本地安装而非容器化环境下的 Redis 实例来说,另一个常见原因是当前登录用户缺少必要的访问权利去控制服务进程。具体表现为尝试连接 Unix Socket (`/var/run/docker.sock`) 失败的情形下抛出了 “permission denied”。对此类状况的标准处理方式如下所示: - 添加一个新的名为 `docker` 的群组; - 把现有使用者加入这个新创建出来的群组里头; - 刷新用户的所属群体信息使之生效。 这些步骤能够有效缓解因为缺乏适当授权而产生的障碍[^4]。 尽管以上提到的方法主要针对不同场景做了说明,但在实际排查过程中还需要结合具体情况逐一验证哪个才是根本诱因所在。 ```python # 示例 Python 脚本用于自动化部分流程 import os os.system('sudo chmod +x /usr/local/bin/redis-*') # 修改二进制文件权限 os.system('setenforce 0') # 测试性关闭 SELinux ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值