Ubuntu16.04安装MongoDB遇到的小问题

ubuntu版本16.04

mongodb版本2.6.10

配置文件地址/etc/mongodb.conf

使用apt 安装MongoDB后,使用sudo mongod 可以打开MongoDB,并正常使用,而使用service mongodb start 启动mongodb服务时,却启动不了, 而且,使用第二种方法不会报错,即使使用/etc/init.d/mongodb start 也能正常启动,不会报错,这是就只能去查看mongodb 的log日志了,日志中显示:


    2018-07-19T17:12:23.495+0800 [initandlisten] MongoDB starting : pid=3276 port=27017 dbpath=/var/lib/mongodb 64-bit host=ubuntu
    2018-07-19T17:12:23.495+0800 [initandlisten] db version v2.6.10
    2018-07-19T17:12:23.495+0800 [initandlisten] git version: nogitversion
    2018-07-19T17:12:23.495+0800 [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
    2018-07-19T17:12:23.495+0800 [initandlisten] build info: Linux lgw01-12 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 BOOST_LIB_VERSION=1_58
    2018-07-19T17:12:23.495+0800 [initandlisten] allocator: tcmalloc
    2018-07-19T17:12:23.495+0800 [initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }
    2018-07-19T17:12:23.495+0800 [initandlisten] exception in initAndListen: 28574 Cannot start server. Detected data files in /var/lib/mongodb created by storage engine 'wiredTiger'. The configured storage engine is 'mmapv1'., terminating
    2018-07-19T17:12:23.495+0800 [initandlisten] dbexit:
    2018-07-19T17:12:23.495+0800 [initandlisten] shutdown: going to close listening sockets...
    2018-07-19T17:12:23.495+0800 [initandlisten] shutdown: going to flush diaglog...
    2018-07-19T17:12:23.495+0800 [initandlisten] shutdown: going to close sockets...
    2018-07-19T17:12:23.496+0800 [initandlisten] shutdown: waiting for fs preallocator...
    2018-07-19T17:12:23.496+0800 [initandlisten] shutdown: lock for final commit...
    2018-07-19T17:12:23.496+0800 [initandlisten] shutdown: final commit...
    2018-07-19T17:12:23.496+0800 [initandlisten] shutdown: closing all files...
    2018-07-19T17:12:23.496+0800 [initandlisten] closeAllFiles() finished
    2018-07-19T17:12:23.496+0800 [initandlisten] dbexit: really exiting now

显示当前数据库的存储引擎与配置的数据库存储引擎不一致,导致无法打开,

应为我已经创建了新的数据库保存文件: /data/db

所以将配置文件中的dbpath修改问data/db

但此时还是不能开启,在log文件中的异常信息为:

    2018-07-19T18:31:51.543+0800 ***** SERVER RESTARTED *****
    2018-07-19T18:31:51.546+0800 [initandlisten] MongoDB starting : pid=6405 port=27017 dbpath=/data/db1 64-bit host=ubuntu
    2018-07-19T18:31:51.546+0800 [initandlisten] db version v2.6.10
    2018-07-19T18:31:51.546+0800 [initandlisten] git version: nogitversion
    2018-07-19T18:31:51.546+0800 [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
    2018-07-19T18:31:51.546+0800 [initandlisten] build info: Linux lgw01-12 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 BOOST_LIB_VERSION=1_58
    2018-07-19T18:31:51.546+0800 [initandlisten] allocator: tcmalloc
    2018-07-19T18:31:51.546+0800 [initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/data/db1", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }
    2018-07-19T18:31:51.546+0800 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
    2018-07-19T18:31:51.546+0800 [initandlisten] dbexit:
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: going to close listening sockets...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: going to flush diaglog...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: going to close sockets...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: waiting for fs preallocator...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: lock for final commit...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: final commit...
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: closing all files...
    2018-07-19T18:31:51.546+0800 [initandlisten] closeAllFiles() finished
    2018-07-19T18:31:51.546+0800 [initandlisten] shutdown: removing fs lock...
    2018-07-19T18:31:51.546+0800 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
    2018-07-19T18:31:51.546+0800 [initandlisten] dbexit: really exiting now

这句话指出在db文件夹下存在 mongod.lock 文件(应该时mongodb在运行时的隔离文件,防止数据库被其他程序错误的更改),但其实文件夹里是没有的,因为为了调这个bug我已经把源文件删除之后用重新创建了新的db文件

这个bug的调法应该参照原来的未修改的dbpath 参考他的文件夹配置,

就是使用chown 和chgrp 修改db文件夹的组和所属用户

我的做法是:

    chmod 777 db
    chown mongodb db
    chgrp mongodb db

然后就重启mongodb吧现在可以使用service命令启动他了

参考连接(基本就是按照这两个连接做的)

    https://stackoverflow.com/questions/15229412/unable-to-create-open-lock-file-data-mongod-lock-errno13-permission-denied

    https://www.jb51.net/article/109091.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值