MongoDB 升级到 Ubuntu 15.04 后服务不工作
MongoDB service not working after upgrade to Ubuntu 15.04
我最近将 ubuntu 从 14.10 升级到 15.04。除 MongoDB
外,所有功能似乎都运行良好。我在使用 Mongoid gem 的 rails 应用程序上使用 mongoDB 和 ruby。 MongoDB 无法像我们通常在 ubuntu.
中那样通过服务进行控制
sudo service mongodb start
或
sudo service mongod start
我收到此错误消息
Failed to restart mongod.service: Unit mongod.service failed to load:
No such file or directory.
但每次我必须使用
将我的应用程序连接到MongoDB服务器时,我必须手动启动它
sudo mongod -f /etc/mongod.conf
因此只要打开该终端,mongodb
就会连接。我在使用 Mongoid adapater/ORM
的 Rails 应用程序的 Ruby 中使用 MongoDB
。
当我运行
sudo service mongodb status
我得到以下输出
mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since بدھ 2015-05-06 14:47:53 PKT; 5s ago
Docs: man:mongod(1)
Process: 28602 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=4)
Main PID: 28602 (code=exited, status=4)
مٓی 06 14:47:53 NX00443 systemd[1]: Started An object/document-oriented database.
مٓی 06 14:47:53 NX00443 systemd[1]: Starting An object/document-oriented database...
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service: main process exited, code=exited, status=4/NOPERMISSION
مٓی 06 14:47:53 NX00443 systemd[1]: Unit mongodb.service entered failed state.
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service failed.
在这方面的任何帮助将不胜感激。
事实证明 Mongo>2.6.3
有一个已知的启动问题:
支持 Systemd(无法使用 Fedora 15 或更高版本的初始化脚本启动 mongodb)
如此处所述:in this link 似乎要到 Ubuntu 16.04
才能完全解决 >2.6.3
问题,除非强烈抗议。
所以解决方案是发出:
sudo apt-get install --reinstall mongodb
这已恢复为 mongo 2.6.3
,现在一切正常!对于那些运行跨越这个...
上述解决方案也适用于我:
> sudo apt-get install --reinstall mongodb
我已经尝试了在本网站和其他网站上找到的几种方法,但只有这个对我有用!所以,现在,回到 Mongodb 2.6.3!
更新:问题已修复(2015/8/2 14:39):
我刚刚发现 MongoDB 3.0.5 已发布,所以我清除了版本 2.6.3 并尝试在我的 Ubuntu 15.04 上安装 3.0.5。但问题依旧!但是,在我用 Debian wheezy 软件包重新安装它之后,sudo service mongod start
命令终于起作用了(当我安装 3.0.4 debian wheezy 版本时它不起作用)。现在新的 MongoDB 3.0.5 在我的 Ubuntu 15.04 上 运行 没问题!
安装Debian wheezy版本,请参考MongoDB官方安装指南:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
上述解决方案的 None 对我有用。 ubuntu 15.04 中的内核级别更改很少,它们不会在当前版本中解决此问题。希望它将在 ubuntu.
的下一个稳定版本中得到修复
我看到了 /var/log/mongodb/mongodb.log
,它需要将身份验证 2.6 模式移动到 3.0.5 模式,我刚刚删除了日志和 /var/lib/mongodb/
中的所有数据库,然后重新启动服务,它再次工作。
2016-01-17T14:43:08.529+0200 I CONTROL [initandlisten] allocator: tcmalloc
2016-01-17T14:43:08.529+0200 I CONTROL [initandlisten] options: { command: [ "run" ], config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1,10.0.0.170", http: { enabled: false }, port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongodb.pid" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", path: "/var/log/mongodb/mongodb.log", quiet: true } }
2016-01-17T14:43:08.834+0200 I STORAGE [initandlisten] Old 2.4 style user index identified. The authentication schema needs to be updated by running authSchemaUpgrade on a 2.6 server.
您需要更改数据库的路径配置:
例如在文件“/etc/mongod.conf”中设置"dbPath: /data/db"
您需要授予 mongodb 用户访问此路径的权限:
sudo chown -R mongodb /data/db
它帮助了我 Ubuntu 16.04:
cd /var/lib
sudo rm -rf ./mongodb
sudo mkdir mongodb
sudo chown -R mongodb mongodb/
sudo service mongodb restart
我最近将 ubuntu 从 14.10 升级到 15.04。除 MongoDB
外,所有功能似乎都运行良好。我在使用 Mongoid gem 的 rails 应用程序上使用 mongoDB 和 ruby。 MongoDB 无法像我们通常在 ubuntu.
sudo service mongodb start
或
sudo service mongod start
我收到此错误消息
Failed to restart mongod.service: Unit mongod.service failed to load: No such file or directory.
但每次我必须使用
将我的应用程序连接到MongoDB服务器时,我必须手动启动它sudo mongod -f /etc/mongod.conf
因此只要打开该终端,mongodb
就会连接。我在使用 Mongoid adapater/ORM
的 Rails 应用程序的 Ruby 中使用 MongoDB
。
当我运行
sudo service mongodb status
我得到以下输出
mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since بدھ 2015-05-06 14:47:53 PKT; 5s ago
Docs: man:mongod(1)
Process: 28602 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=4)
Main PID: 28602 (code=exited, status=4)
مٓی 06 14:47:53 NX00443 systemd[1]: Started An object/document-oriented database.
مٓی 06 14:47:53 NX00443 systemd[1]: Starting An object/document-oriented database...
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service: main process exited, code=exited, status=4/NOPERMISSION
مٓی 06 14:47:53 NX00443 systemd[1]: Unit mongodb.service entered failed state.
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service failed.
在这方面的任何帮助将不胜感激。
事实证明 Mongo>2.6.3
有一个已知的启动问题:
支持 Systemd(无法使用 Fedora 15 或更高版本的初始化脚本启动 mongodb)
如此处所述:in this link 似乎要到 Ubuntu 16.04
才能完全解决 >2.6.3
问题,除非强烈抗议。
所以解决方案是发出:
sudo apt-get install --reinstall mongodb
这已恢复为 mongo 2.6.3
,现在一切正常!对于那些运行跨越这个...
上述解决方案也适用于我:
> sudo apt-get install --reinstall mongodb
我已经尝试了在本网站和其他网站上找到的几种方法,但只有这个对我有用!所以,现在,回到 Mongodb 2.6.3!
更新:问题已修复(2015/8/2 14:39):
我刚刚发现 MongoDB 3.0.5 已发布,所以我清除了版本 2.6.3 并尝试在我的 Ubuntu 15.04 上安装 3.0.5。但问题依旧!但是,在我用 Debian wheezy 软件包重新安装它之后,sudo service mongod start
命令终于起作用了(当我安装 3.0.4 debian wheezy 版本时它不起作用)。现在新的 MongoDB 3.0.5 在我的 Ubuntu 15.04 上 运行 没问题!
安装Debian wheezy版本,请参考MongoDB官方安装指南: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
None 对我有用。 ubuntu 15.04 中的内核级别更改很少,它们不会在当前版本中解决此问题。希望它将在 ubuntu.
的下一个稳定版本中得到修复我看到了 /var/log/mongodb/mongodb.log
,它需要将身份验证 2.6 模式移动到 3.0.5 模式,我刚刚删除了日志和 /var/lib/mongodb/
中的所有数据库,然后重新启动服务,它再次工作。
2016-01-17T14:43:08.529+0200 I CONTROL [initandlisten] allocator: tcmalloc
2016-01-17T14:43:08.529+0200 I CONTROL [initandlisten] options: { command: [ "run" ], config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1,10.0.0.170", http: { enabled: false }, port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongodb.pid" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", path: "/var/log/mongodb/mongodb.log", quiet: true } }
2016-01-17T14:43:08.834+0200 I STORAGE [initandlisten] Old 2.4 style user index identified. The authentication schema needs to be updated by running authSchemaUpgrade on a 2.6 server.
您需要更改数据库的路径配置:
例如在文件“/etc/mongod.conf”中设置"dbPath: /data/db"
您需要授予 mongodb 用户访问此路径的权限:
sudo chown -R mongodb /data/db
它帮助了我 Ubuntu 16.04:
cd /var/lib
sudo rm -rf ./mongodb
sudo mkdir mongodb
sudo chown -R mongodb mongodb/
sudo service mongodb restart