目录

解决达梦数据库开机无法自动启动的问题
您遇到的问题是达梦数据库(DM)服务在系统重启后无法自动启动。这通常与权限、服务配置或启动顺序有关。
使用rc.local传统方式(推荐简单系统)
创建/编辑rc.local文件:
sudo nano /etc/rc.local
添加以下内容(如果文件已存在,在exit 0前添加):
#!/bin/bash# 等待必要服务启动sleep 15# 设置环境变量(根据实际安装路径调整)export DM_HOME=/opt/dmdbmsexport PATH=$DM_HOME/bin:$PATH# 启动达梦服务su - dmdba -c "$DM_HOME/bin/DmServiceDMSERVER start"exit 0
设置执行权限:
sudo chmod +x /etc/rc.local
启用rc-local服务(对于systemd系统):
sudo systemctl enable rc-local.service
创建自定义systemd服务(更现代可靠)
创建服务文件:
sudo nano /etc/systemd/system/dmdb.service
添加以下内容:
[Unit]Description=DM Database ServerAfter=network.target remote-fs.targetRequires=network.target[Service]Type=forkingUser=dmdbaGroup=dinstallEnvironment=DM_HOME=/opt/dmdbmsEnvironment=PATH=$DM_HOME/bin:$PATHExecStart=/opt/dmdbms/bin/DmServiceDMSERVER startExecStop=/opt/dmdbms/bin/DmServiceDMSERVER stopRestart=on-failureRestartSec=30sTimeoutStartSec=300[Install]WantedBy=multi-user.target
重新加载并启用服务:
sudo systemctl daemon-reloadsudo systemctl enable dmdb.service
使用crontab的@reboot(备选方案)
sudo crontab -e
添加:
@reboot sleep 30 && su - dmdba -c "/opt/dmdbms/bin/DmServiceDMSERVER start"
重要补充步骤
确保目录权限正确:
sudo chown -R dmdba:dinstall /dmdatasudo chmod -R 750 /dmdata
检查依赖项:
# 查看达梦数据库依赖的库ldd /opt/dmdbms/bin/dmserver# 确保所有依赖库都存在
验证脚本执行权限:
sudo ls -l /opt/dmdbms/bin/DmServiceDMSERVER
调试技巧
如果服务仍然无法启动,可以添加调试输出:
# 在脚本中添加日志记录{echo "==== $(date) ===="export DM_HOME=/opt/dmdbms/opt/dmdbms/bin/DmServiceDMSERVER startecho "退出状态: $?"} >> /var/log/dm_startup.log 2>&1
还有其他的解决方案
1. 检查服务是否设置为开机自启
# 检查服务是否启用开机自启sudo systemctl is-enabled DmServiceDMSERVER.service# 如果没有启用,执行以下命令sudo systemctl enable DmServiceDMSERVER.service
2. 检查挂载点问题(如果/dmdata是单独分区)
# 查看/etc/fstab中/dmdata的挂载配置cat /etc/fstab | grep dmdata# 如果/dmdata是单独分区,确保添加了挂载选项"defaults"和正确的文件系统类型
3. 检查启动顺序依赖
达梦可能依赖其他服务(如网络)先启动:
# 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Unit]部分添加依赖(示例)After=network.target remote-fs.target nss-lookup.target
4. 检查启动超时设置
# 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Service]部分添加(单位是秒)TimeoutStartSec=300
5. 创建启动日志以便调试
# 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Service]部分添加StandardOutput=file:/var/log/dm_service.logStandardError=file:/var/log/dm_service_error.log
6. 检查系统启动后手动执行
# 创建一个测试脚本sudo nano /etc/rc.local# 添加以下内容(如果文件不存在,创建它)#!/bin/bashsleep 10 # 等待其他服务启动systemctl start DmServiceDMSERVER.serviceexit 0# 给文件执行权限sudo chmod +x /etc/rc.local# 启用rc.local服务(如果系统使用systemd)sudo systemctl enable rc-local.service
7. 检查数据库启动日志
# 查看达梦数据库启动日志cat /opt/dmdbms/log/dm_*.log
永久解决方案建议
确保目录权限持久化:
sudo chown -R dmdba:dinstall /dmdatasudo chmod -R 750 /dmdata
创建systemd服务依赖:
sudo systemctl edit DmServiceDMSERVER.service
添加:
[Unit]After=network.target remote-fs.targetRequires=network.target remote-fs.target
检查是否有其他服务冲突:
sudo journalctl -b -u DmServiceDMSERVER.service
考虑使用cron任务作为后备方案:
sudo crontab -e
添加:
@reboot sleep 30 && /opt/dmdbms/bin/DmServiceDMSERVER start
请尝试上述方法后重启系统测试,如果问题仍然存在,建议检查/var/log/messages或journalctl -b获取更详细的启动错误信息
* Thanks you *
如果觉得文章内容不错,随手帮忙点个赞、在看、转发一下,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章。
*往期推荐 *
银河麒麟 | ubuntu 安装国产达梦DM8数据库(安装+外网通+IDEA连接)
网络设备日志存储到指定的Kiwi-log服务器(图解+软件)
银河麒麟 | ubuntu 安装运用 docker 容器,实现容器化部署项目
银河麒麟 | ubuntu 安装zabbix监控设备信息(亲测包对)
只需5步让你轻松导出学习通纯考试题目(JavaScript)
国产操作系统-银河麒麟本地化部署Ollama国产开源的AI大模型Qwen3
Swagger | 手把手带你写自动生成接口文档的爽感(零基础亲测实用)
SpringBoot整合Openfeign接入Kimi Ai!!超简单,居然没多少行代码??(附加兜底教程)
Maven | 站在初学者的角度配置与项目创建(新手必学会)
Spring Ai | 极简代码从零带你一起走进AI项目(中英)
MongoDB | 零基础学习与Springboot整合ODM实现增删改查(附源码)
Openfeign | 只传递城市代码,即可获取该地域实时的天气数据(免费的天气API)
Mongodb | 基于Springboot开发综合社交网络应用的项目案例(中英)
感谢阅读 | 更多内容尽在公棕号 WMCode | CSDN@小Mie不吃饭