解决mongo无法使用service启动,且无日志打印
安全加固,升级ssh,并重启后,导致mongo无法启动的问题
现象:
使用service mongod start启动服务,无法启动,并且没有任何mongo日志打印
初步判断为加固后,部分lib库权限不够。
进一步操作确定:
修改 /etc/init.d/mongod 将启动mongod时的打印日志打印到屏幕
vi /etc/init.d/mongod
将
daemon --user "$MONGO_USER" --check $mongod "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
注释掉
换为
daemon --user "$MONGO_USER" --check $mongod "$NUMACTL $mongod $OPTIONS "
使用 service mongod start 启动服务
屏幕将显示打印的问题
比如:[root@localhost init.d]# service mongod start Starting mongod: /usr/bin/mongod: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory [FAILED]
或者提示某个库缺少权限等错误。
这里基本确定就是lib库无权限了。使用ldd命令找到该库位置。
[root@192 HubStb]# ldd /usr/bin/mongod linux-vdso.so.1 => (0x00007ffd085ef000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00002b84ba1d2000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00002b84ba440000) librt.so.1 => /lib64/librt.so.1 (0x00002b84ba824000) libdl.so.2 => /lib64/libdl.so.2 (0x00002b84baa2c000) libm.so.6 => /lib64/libm.so.6 (0x00002b84bac31000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b84baeb5000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b84bb0cb000) libc.so.6 => /lib64/libc.so.6 (0x00002b84bb2e9000) /lib64/ld-linux-x86-64.so.2 (0x0000003598000000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00002b84bb67d000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00002b84bb8c1000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b84bbba8000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00002b84bbdac000) libz.so.1 => /lib64/libz.so.1 (0x00002b84bbfd8000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00002b84bc1ef000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b84bc3fa000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b84bc5fd000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b84bc818000)
到对应库目录下赋予权限,如果是软连接方式,还需将软连接指向的库文件也赋权限。比如:
cd /lib64/ chmod 777 libz*
重复2 到 4 步骤,直到重启成功。
将/etc/init.d/mongod还原,也可不还原。