Kur*_*oZ7 61 mongodb ubuntu-13.04
我是MongoDB的新手.我正在尝试在Ubuntu 13.0 LTS上安装MongoDb 3.0,这是Windows 7主机上的VM.我已经成功安装了MongoDB(包等),但是当我执行命令时sudo service mongod start,我在"/var/log/mongodb/mongod.log"日志文件中收到以下错误.任何人都可以帮我理解这个错误.互联网上没有与此相关的内容.
2015-04-23T00:12:00.876-0400 I CONTROL*****SERVER RESTARTED*****2015-04-23T00:12:00.931-0400 E NETWORK [initandlisten]无法取消链接套接字文件/ tmp/mongodb -27017.soc k errno:1不允许操作2015-04-23T00:12:00.931-0400 I - [initandlisten]致命断言28578 2015-04-23T00:12:00.931-0400 I - [initandlisten]
Kur*_*oZ7 128
我自己修复了这个问题,删除了该mongodb-27017.sock文件.删除此文件后我运行了该服务,运行正常.但是,我仍然不确定问题的根本原因.ls - lat /tmp/mongodb-27017.sock现在命令的输出
srwx------ 1 mongodb nogroup 0 Apr 23 06:24 /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
Bas*_*aut 27
除了KurioZ7提供的答案之外,您只需将.sock文件的权限设置为当前用户:
sudo chown `whoami` /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
如果我想在没有sudo的情况下运行mongod,这对我有用.如果我像KurioZ7s一样删除文件,我将在下次重新启动机器时遇到同样的错误.
Gre*_*ler 13
使用此命令时会发生此问题
mongod
Run Code Online (Sandbox Code Playgroud)
在使用命令之前
sudo service mongod start
Run Code Online (Sandbox Code Playgroud)
要解决此问题,请:
在文件上设置适当的权限:
/tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
要么
删除该文件
/tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
跑
sudo service mongod start && mongod
Run Code Online (Sandbox Code Playgroud)
Raj*_*h K 12
更改 /tmp 目录中的所有权 mongodb-27017.sock 文件并再次启动 mongod。
cd /tmp
Run Code Online (Sandbox Code Playgroud)
sudo chown mongodb:mongodb mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
sudo systemctl start mongod
Run Code Online (Sandbox Code Playgroud)
最可能的原因是mongod进程在某个时刻由root用户启动.因此,套接字文件(/tmp/mongodb-27017.sock)由root用户拥有.mongod进程通常在其自己的专用用户下运行,并且该用户没有删除该文件的权限.
正如您已经发现的那样,解决方案是将其删除.然后mongodb能够使用正确的权限重新创建它.只要使用init脚本启动mongodb,或者在正确的用户帐户下,这应该在重新启动后保留.
| 归档时间: |
|
| 查看次数: |
55214 次 |
| 最近记录: |