最近想把mongodb的数据库迁移到别的服务器,由于库文件不大不小,就想可不可以直接把文件打包,直接scp到另一台机器,结果证明是可以的,不过中间遇到了个问题。
当把目标机器的数据库文件替换成源数据库文件后,用命令启动mongodb:
service mongodb start
老是启动失败,在日志中查看到有如下错误:
couldn't remove fs lock errno:9 Bad file descriptor
然后在网上开始狂搜索:发现这里:http://stackoverflow.com/questions/15229412/unable-to-create-open-lock-file-data-mongod-lock-errno13-permission-denied
问题和我一样的,但是,我按解决方法一样一样地做:
sudo chown -R `id -u` /data/db
或重新建立目录:
$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db
都还是报相同的错误,郁闷了,最后仔细查看所有的问题,发现一哥们的详细办法:
sudo chown -R mongodb:mongodb /data /log /journal
可以看到,除了修改数据库文件的owner还要修改日志文件的,然后就顺利解决了此问题,感谢stackoverflow, 感谢此哥们http://stackoverflow.com/users/1324960/evers
。