我在Mac上运行MongoDB:
Shave:mongodb_simple Logan$ ./bin/mongod -f conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 5110
ERROR: child process failed, exited with error number 14
是因为我以错误的方式关闭了它吗?
答案 0 :(得分:10)
你开始并且可能以错误的方式关闭mongo。
<强> 1。开始MONGODB
以后台类型启动mongo:class MyActor extends Actor {
val exec = Executors.newFixedThreadPool(max_threads)
def recieve = {
case Request(file) => {
exec.submit(new Runnable() {
def run() {
sys.process.Process(...),
new java.io.File("/var/...")).!!
self ! Done(file) // dont block, respond asynchronously
}
})
}
case Done(file) => completeRequest(file)
}
}
。
mongod --dbpath /data/db --fork --logpath /dev/null
是db的位置。如果您还没有创建一个=&gt;输入:/data/db
mkdir /data/db
表示你想在后台启动mongo - deamon。 --fork
表示您不想记录 - 您可以将--logpath /dev/null
替换为/dev/null
<强> 2。关闭MONGODB
键入:/var/log/mongo.log
,然后键入mongo
和use admin
,即可连接到您的mongo。就像mongoDB
如果这种技术由于某种原因不起作用,你总是可以杀死这个过程。
db.shutdownServer()
来查找mongodb进程PID
,假设您的mongodb在端口27017上运行lsof -i:27017
,将kill <PID>
替换为您找到上一个命令的值。 答案 1 :(得分:3)
检查文件/tmp/mongodb-27017.sock
的所有权
应为mongod
。我遇到了同样的错误,因为它是root:root
答案 2 :(得分:2)
这是因为您没有在传递给mongod
选项的配置文件中正确配置-f
实例。
重新访问您的配置文件,并确保正确配置eveything。
答案 3 :(得分:1)
对我而言是ulimit
问题,mongo无法打开太多文件。
使用ulimit -n 10000
。
然而,作为通用指针查看mongo日志文件,它们将告诉进一步查看的位置。通常,日志文件位于/var/log/mongo.log
,但请查看您的mongo配置文件。
答案 4 :(得分:1)
这对我有用:
在终端
中运行sudo rm -rf mongod.lock
export LC_ALL=C
然后
sudo mongod --fork --config /xxxx/xx/mongod.conf --logpath /xxx/log/mongodb/mongodb.log
答案 5 :(得分:1)
检查mongod是否与pgrep mongod
或ps -aef | grep mongod
或systemctl status mongod
一起运行
停止并重新启动它以检查问题是否消失
如果您以mongod -f /etc/mongod.conf
开始mongod,请以pkill -9 mongod
杀死它,然后以mongod -f /etc/mongod.conf
开始
如果您将其运行为服务,请使用systemctl restart mongod
重新启动它。
如果重新启动不起作用,请通过/var/log/message
和/var/log/mongodb/mongod.log
文件找出问题。
进行操作时,请使用tail -f /var/log/message
和tail -f /var/log/mongodb/mongod.log
检查输出。
for example:
1.
Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted
delete the sock file with `rm`
2.
WiredTiger error (13) [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied
Failed to start up WiredTiger under any compatibility version
Reason: 13: Permission denied
check the file permission or owner with `ls` then change to the wright permission with `chmod` or right owner with `chown`
答案 6 :(得分:0)
我遇到了同样的问题,但我的系统时钟已关闭,因此我的SSL证书在技术上无效。更改为当前工作日期和时间date --set "<DD M Y H:M>"
仅通过查看mongodb日志找到此信息
答案 7 :(得分:0)
通过将mongodb
下所有文件的所有者更改为/var/lib/mongodb/
,它开始为我工作:
chown mongodb:mongodb -R /var/lib/mongodb/
答案 8 :(得分:0)
我在GCP托管的Compute Engine实例上遇到了此问题。
由于这是Google搜索该问题的最佳答案,因此,我将介绍对我有用的内容,并且是MongoDB(jira-link)记录的错误
在linux系统上,如果运行mongod的用户未设置语言环境或语言环境配置错误,mongod将无法开始打印堆栈跟踪。
可以通过组合几个步骤来解决此问题:
sudo apt-get install language-pack-XX
sudo update-locale
重新启动会话,然后再次检查同一mongo命令
IFF上面的命令不起作用(对我而言不行),只需将以下内容手动添加到/etc/default/locale
(ref)的文件中:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
sudo dpkg-reconfigure locales
仅此而已,您现在可以使用MongoDB实例了!
答案 9 :(得分:0)
在我的mongodb设置中,为了保留内联到现有服务器的特定版本的mongoDB并避免将二进制文件放在根磁盘下,我更改了所有mongo二进制文件在不同目录中的路径。我必须使用rpm
选项而不是yum
选项(因为yum仅安装了最新版本,尽管提到了特定版本。)
rpm -ivh --prefix=/apps/mongodb /apps/mongo_rpm_packages/mongodb-org-*.rpm
注意::放置二进制文件的默认路径为/var/lib/mongo
。
此方法不允许mongod
用户获得必需的权限,或者其配置不正确,因此,我将user
文件中的group
和mongod.service
更改为{{1 }}用户并成功使用以下方法成功启动了该过程:
root
答案 10 :(得分:0)
使用--shutdown
mongod --shutdown
然后
service mongod restart
有效!
{{3}}
答案 11 :(得分:0)
和我一起删除文件:/tmp/mongodb-27017.sock 然后重启mongod
答案 12 :(得分:0)
只需运行它并启动 mongod
/tmp/mongodb-27017.sock
systemctl start mongod