我刚刚在ubuntu 14.0.4上安装了mongoDB。 我试图启动shell,但我收到连接拒绝错误。
me@medev:/etc/init.d$ mongo
MongoDB shell version: 2.6.5
connecting to: test
2014-11-10T15:06:28.084-0500 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-11-10T15:06:28.085-0500 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed
所以我决定尝试重启服务,但那也失败了。我收到以下错误消息:
me@medev:/etc/init.d$ sudo service mongodb restart
mongodb: unrecognized service
me@medev:/etc/init.d$
这就是我在/var/log/mongodb/mongod.log中的内容 - http://pastebin.com/MrHt8tce
到目前为止我所尝试的内容:
我在这里发现了另一篇帖子:can't start mongodb as sudo 它发表了关于删除mongo锁文件的评论。
我删除了锁定文件,然后重试了我的命令,但它仍然失败,如下所示:
me@medev:/var/lib/mongodb$ sudo rm mongod.lock
me@medev:/var/lib/mongodb$ ls
journal local.0 local.ns _tmp
me@medev:/var/lib/mongodb$ sudo service mongodb start
mongodb: unrecognized service
但我可以使用/etc/init.d启动它,如下所示:
me@medev:/var/lib/mongodb$ sudo /etc/init.d/mongod start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongod start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mongod
mongod start/running, process 27469
me@medev:/var/lib/mongodb$ ls
journal local.0 local.ns mongod.lock
me@medev:/var/lib/mongodb$ mongo
MongoDB shell version: 2.6.5
connecting to: test
> db
test
>
任何关于我为什么无法使用服务命令启动它的想法都将不胜感激。根据我的阅读,我应该使用sudo service mongodb
答案 0 :(得分:37)
试试这个:
撰写bin
代替mongodb
mongod
答案 1 :(得分:20)
有一天我得到了同样的错误你应该使用它:
1.获取mongo服务的状态:
/etc/init.d/mongod status
或
sudo service mongod status
2.如果没有开始修复,请执行以下操作:
sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start
再次检查服务是否再次启动(1)
答案 2 :(得分:7)
对我来说,解决方案是替换
service mongod start
带
start mongod
答案 3 :(得分:5)
您需要确保该文件(例如/etc/init.d/mongodb)具有执行权限。
chmod +x /etc/init.d/mongodb
答案 4 :(得分:3)
对于debian,从10gen repo,在2.4.x和2.6.x之间,他们将init脚本/etc/init.d/mongodb重命名为/etc/init.d/mongod,并将/或默认配置文件重命名为/ etc / mongodb.conf到/etc/mongod.conf,以及从“mongodb”到“mongod”的PID和锁文件。这使得升级成为一种痛苦,我在任何地方的文档中都没有提到它。无论如何,解决方案是删除旧的“mongodb”版本:
update-rc.d -f mongodb remove
rm /etc/init.d/mongodb
rm /var/run/mongodb.pid
diff -ur /etc/mongodb.conf /etc/mongod.conf
现在,查看并查看需要保留的配置更改,并将它们放在mongod.conf中。
然后:
rm /etc/mongodb.conf
现在你可以:
service mongod restart
答案 5 :(得分:2)
对我来说没有任何帮助,但在与expirienced devops伙伴商量后,我已经以解决方案结束
创建包含内容的foverlaps
文件
data.table
然后启动/停止命令应该工作
/lib/systemd/system/mongod.service
供参考 - 我从
安装了Ubuntu 14.04 LTS,MongoDB 3.2.9[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
答案 6 :(得分:1)
我使用manual from official site在Debian Jessie上安装了mongo服务器。
在使用相同的sudo service mongod restart
的推荐命令error - mongodb: unrecognized service
之后,它没有启动。
在查看已安装的软件包内容之后,我注意到它仅包含Systemd服务单元,而没有SystemV初始化脚本:
# dpkg -L mongodb-org-server
/.
/usr
/usr/bin
/usr/bin/mongod
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/mongodb-org-server
/usr/share/doc
/usr/share/doc/mongodb-org-server
/usr/share/doc/mongodb-org-server/LICENSE-Community.txt
/usr/share/doc/mongodb-org-server/README
/usr/share/doc/mongodb-org-server/copyright
/usr/share/doc/mongodb-org-server/changelog.gz
/usr/share/doc/mongodb-org-server/GNU-AGPL-3.0.gz
/usr/share/doc/mongodb-org-server/THIRD-PARTY-NOTICES.gz
/usr/share/doc/mongodb-org-server/MPL-2.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mongod.1.gz
/etc
/etc/mongod.conf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/mongod.service
但是我的系统在SysV初始化上运行:
# stat /proc/1/exe
File: '/proc/1/exe' -> '/sbin/init'
因此,现在有2个选项:
systemctl start mongod
答案 7 :(得分:0)
我想你可能已经为错误的系统发行版安装了mongodb版本。
看看如何为ubuntu和debian安装mongodb:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
我有类似的问题,发生的事情是我在debian中安装ubuntu软件包
答案 8 :(得分:0)
原始来源 - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/
如果您使用的是Ubuntu 16.04并面临无法识别的服务错误,这些说明将为您解决: -
sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv EA312927
sudo touch /etc/apt/sources.list.d/mongodb-org.list
sudo gedit /etc/apt/sources.list.d/mongodb-org.list
deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse
对于14.04:deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse
对于16.04:deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse
确保使用相应的最新版本编辑版本号并保存文件。
<强>安装强>
打开终端窗口并发出命令sudo apt-get update && sudo apt-get install -y mongodb-org
让安装完成。
运行MongoDB 要启动数据库,请发出命令sudo service mongodb start
。您现在应该能够发出命令以查看MongoDB是否正在运行:systemctl status mongodb
Ubuntu 16.04解决方案 如果您使用的是Ubuntu 16.04,则可能会遇到由于从upstart切换到systemd而出现错误mongodb:无法识别的服务的问题。要解决这个问题,您必须按照以下步骤操作。
如果您添加了/etc/apt/sources.list.d/mongodb-org.list
,请使用sudo rm /etc/apt/sources.list.d/mongodb-org.list
使用命令sudo apt-get update
使用命令sudo apt-get install mongodb
从标准存储库安装官方MongoDB版本,以便正确设置服务
使用命令sudo apt-get remove mongodb && sudo apt-get autoremove
现在按照上面列出的步骤1到5安装MongoDB;这应该使用已经存在的systemd服务重新安装最新版本的MongoDB。当您发出命令systemctl status mongodb
时,您应该看到服务器处于活动状态。
我主要是从这里复制粘贴上面的内容(稍加修改和错误修正) - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/
答案 9 :(得分:0)
这是一个简单的解决方案,对我有相同的问题(我认为):
mv /var/lib/mongodb /var/lib/mongodb_backup
mkdir /var/lib/mongodb
chmod 700 /var/lib/mongodb
chown mongodb:daemon /var/lib/mongodb
systemctl restart mongodb or service mongod restart
答案 10 :(得分:0)
您可以使用mongod
而不是mongodb
命令,如果在mongo中发现有关dbpath的任何问题,可以在下面的链接中使用我的答案。