Ubuntu16.04安装mongodb及错误修正

1.安装 MongoDB。

1.为软件包管理系统导入公钥。

Ubuntu 软件包管理工具为了保证软件包的一致性和可靠性需要用 GPG 密钥检验软件包。使用下列命令导入 MongoDB 的 GPG 密钥 ( MongoDB public GPG Key http://docs.mongodb.org/10gen-gpg-key.asc)_:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
  • 1

这里写图片描述

2.为MongoDB创建列表文件

使用下列命令创建 /etc/apt/sources.list.d/mongodb.list 列表文件 
Ubuntu 12.04

 echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  • 1

Ubuntu 14.04

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  • 1

这里写图片描述

3.重载软件包数据库。

使用下列命令重载本地软件包数据库:

sudo apt-get update

这里写图片描述

4.安装MongoDB软件包。

您可以安装最新的稳定版 MongoDB 或指定版本的 MongoDB。 
安装MongoDB最新的稳定版本。 
使用下列命令:

sudo apt-get install -y mongodb-org

这里写图片描述
如果你想安装指定版本的MongoDB,请按照下面的方法。 
下面的例子安装 3.2.0 版本的 MongoDB: 
MongoDB的不同组件都可以指定相应的版本号

sudo apt-get install -y mongodb-org=3.2.0 mongodb-org-server=3.2.0 mongodb-org-shell=3.2.0 mongodb-org-mongos=3.2.0 mongodb-org-tools=3.2.0

运行mongodb

  • MongoDB默认的数据文件和日志文件分别存储在下面的位置 
    数据文件:/var/lib/mongodb 
    日志文件:/var/log/mongodb 
    你可以修改/etc/mongod.conf 文件来改变相应的存储位置。

  • 如果你想改变运行MongoDB的用户,你必须把 /var/lib/mongodb 和 /var/log/mongodb 2个目录的访问权限付给该用户。

1.启动 MongoDB。

使用下列命令启动 mongod 进程。

sudo service mongod start

  1. MongoDB启动异常重现

    在使用如下命令启动MongoDB服务:

    $ sudo service mongod start

    系统提示如下错误信息:

    Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.

  2. 查看MongoDB服务启动失败的原因

    使用如下命令查看:

    $journalctl -xe

    可以看到详细的错误信息:




  1. MongoDB启动异常重现

    在使用如下命令启动MongoDB服务:

    $ sudo service mongod start

    系统提示如下错误信息:

    Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.

  2. 查看MongoDB服务启动失败的原因

    使用如下命令查看:

    $journalctl -xe

    可以看到详细的错误信息:

    hxb@hxb:~$ journalctl -xe-- Subject: mongod.service 单元已开始启动-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- mongod.service 单元已开始启动。3月 22 17:06:00 hxb mongod[3740]: Rather than invoking init scripts through /etc/3月 22 17:06:00 hxb mongod[3740]: utility, e.g. service mongod start3月 22 17:06:00 hxb mongod[3740]: initctl: 无法连接到 Upstart: Failed to connect to so3月 22 17:06:00 hxb mongod[3740]: Since the script you are attempting to invoke h3月 22 17:06:00 hxb mongod[3740]: Upstart job, you may also use the start(8) util3月 22 17:06:00 hxb mongod[3740]: start: 无法连接到 Upstart: Failed to connect to sock3月 22 17:06:00 hxb systemd[1]: mongod.service: Control process exited, code=exit3月 22 17:06:00 hxb systemd[1]: Failed to start mongod.service.-- Subject: mongod.service 单元已失败-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel--

    如何解决MongoDB启动时无法连接到Upstart的错误
  3. 解决无法连接到 Upstart的错误

    使用如下命令:

    hxb@hxb:~$ sudo dpkg-divert --local --rename --add /sbin/initctl正在添加 本地转移 /sbin/initctl 到 /sbin/initctl.distribhxb@hxb:~$ ln -s /bin/true /sbin/initctlln: 无法创建符号链接'/sbin/initctl': 权限不够hxb@hxb:~$ sudo ln -s /bin/true /sbin/initctl

    如何解决MongoDB启动时无法连接到Upstart的错误
  4. 重新启动MongoDB服务

    使用如下命令:

    hxb@hxb:~$ sudo service mongod start


2.检查 MongoDB 是否成功启动

通过检查 /var/log/mongodb/mongod.log 文件来确定 mongod 进程是否已经成功启动。 
或者查看进程

ps -ef | grep mongod

这里写图片描述

3.停止 MongoDB

sudo service mongod stop

4.重新启动 MongoDB

sudo service mongod restart

3.卸载 MongoDB

  • 如果要在你的系统中完全卸载MongoDB,你必须卸载MongoDB的程序文件,配置文件,和所有的包含数据和日志的文件和文件夹。下面我将演示如何完全卸载MongoDB

1. 停止MongoDB

使用如下命名停止MongoDB的守护进程:

sudo service mongod stop

2. 移除MongoDB的程序文件

删除你以前所有的MongoDB的安装包:

sudo apt-get purge mongodb-org*

3.删除数据文件和日志文件的目录

sudo rm -r /var/log/mongodb 
sudo rm -r /var/lib/mongodb

本文参考了MongoDB的官方安装文档,如果有兴趣的同学可以参考原版的官方文档,地址如下: 
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 
谢谢~~~

4.创建用户和远程访问

4.1 创建管理员

db.createUser({user: "root",pwd: "root",roles: [ "readWrite", "dbAdmin" ]});
  • 1

4.2 修改绑定ip

vi /etc/mongod.conf 
注释掉

#bindIp: 127.0.0.1 
  • 1

4.3:重启

service mongod restart
  • 1

4.4:开启端口

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT 
  • 1

5.改变mongodb的数据存储和日志路径

因为mongodb安装完毕后,数据文件和日志文件都存储在了系统盘(数据文件:/var/lib/mongodb 日志文件:/var/log/mongodb )中,需要修改下目录,需要改变到数据盘中,防止数据量太大导致系统盘占满的错误。

5.1 在数据盘中单独建立一个文件夹

我的系统的数据盘是/data

cd /data 
mkdir mongodbfile 
cd mongodbfile

5.2创建数据文件存储目录

mkdir data

5.3创建日志文件存储目录

mkdir log

5.4创建启动文件

vi mongod.conf

添加如下文件

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /data/mongodbfile/data
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /data/mongodbfile/log/mongod.log

# network interfaces
net:
  port: 27017
  #bindIp: 127.0.0.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

如果你是空的库的话,就不牵涉到数据迁移,直接保持data目录和log目录下为空就可以,如果原来的有数据,请把原来的data目录和log目录的所有文件都拷贝过来。

5.5 启动服务

根据配置文件以后台进程的方式启动mongodb服务

mongod -f /data/mongodbfile/mongod.conf &

退出终端

exit

mongodb服务正常运行。


参考文献http://blog.csdn.net/zhushh/article/details/52451441

http://jingyan.baidu.com/article/6766299788518554d51b84c0.html

猜你喜欢

转载自blog.csdn.net/maguanzhan7939/article/details/78198405