首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 启动失败,权限不足
更新时间:2026-05-06 09:11
本文介绍通过 admin 用户启动已停止的 observer 进程失败时的处理方法。
适用版本
OceanBase 数据库所有版本
问题现象
手动停止 observer 进程后,通过 root 用户启动 observer 进程。
[root@hostname oceanbase]# ./bin/observer
./bin/observer
再次停止该 observer 进程,通过 admin 用户启动 observer 进程,发现进程没有启动。
[admin@hostname oceanbase]$ ./bin/observer
./bin/observer
[admin@hostname oceanbase]$ ps -ef|grep observer
admin 125431 125024 0 16:49 pts/0 00:00:00 grep observer
问题原因
通过 root 用户启动 observer 进程后,目录权限发生了变化,因此无法再通过 admin 用户启动 observer 进程。
进入 oceanbase/run 目录,发现 observer.pid 与 mysql.sock 文件的拥有者均为 root。其中,observer.pid 是 observer 进程的 pid 文件,mysql.sock 是本地连接的套接字文件。
[admin@hostname oceanbase]$ ls -al
total 12
drwxrwxr-x 2 admin admin 4096 Jul 1 16:48 .
drwxr-xr-x 9 admin admin 4096 Jun 21 11:06 ..
srwxr-xr-x 1 root root 0 Jul 1 16:48 mysql.sock
-rw------- 1 root root 6 Jul 1 16:48 observer.pid
解决方式
修改所有目录相关文件的拥有者为
admin:admin。[root@hostname oceanbase]# chown admin:admin /home/admin/oceanbase -R [root@hostname oceanbase]# chown admin:admin /data/1 -R [root@hostname oceanbase]# chown admin:admin /data/log1 -R使用 admin 用户重新启动 observer 进程。
[admin@hostname oceanbase]$ ./bin/observer [admin@hostname oceanbase]$ ps -ef|grep observer admin 27387 0 99 16:56 ? 00:03:59 ./bin/observer admin 31247 26412 0 16:56 pts/0 00:00:00 grep observer