解決mongo無法使用service啓動,且無日誌打印

解決mongo無法使用service啓動,且無日誌打印

安全加固,升級ssh,並重啓後,導致mongo無法啓動的問題
現象:
使用service mongod start啓動服務,無法啓動,並且沒有任何mongo日誌打印

初步判斷爲加固後,部分lib庫權限不夠。

進一步操作確定:

  1. 修改 /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 "

  2. 使用 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庫無權限了。

  3. 使用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)
  4. 到對應庫目錄下賦予權限,如果是軟連接方式,還需將軟連接指向的庫文件也賦權限。比如:

    cd /lib64/
    chmod 777 libz*
  5. 重複2 到 4 步驟,直到重啓成功。

  6. 將/etc/init.d/mongod還原,也可不還原。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章