debian 8.2 + apt-get + mongodb 3.2

安装debian 8.2

os 透明大页设置

https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
检查

#cat /sys/kernel/mm/transparent_hugepage/enabled
#cat /sys/kernel/mm/transparent_hugepage/defrag
均应该输出如下
always madvise [never]

可临时设置如下

#echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
#echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag

或者写入 /etc/rc.local

# vi /etc/rc.local
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag

安装mongodb

下载 https://www.mongodb.com/download-center?jmp=docs#community

官方安装文档
https://docs.mongodb.com/manual/administration/install-on-linux/
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/

mongodb 包的简介

Package Name        Description
mongodb-org         A metapackage that will automatically install the four component packages listed below.
mongodb-org-server  Contains the mongod daemon and associated configuration and init scripts.
mongodb-org-mongos  Contains the mongos daemon.
mongodb-org-shell   Contains the mongo shell.
mongodb-org-tools   Contains the following MongoDB tools: mongoimport bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop.

配置apt源

导入密钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927

不导密钥会报如下错误

W: GPG 错误:http://repo.mongodb.org jessie/mongodb-org/3.2 Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY D68FA50FEA312927

#vi /etc/apt/sources.list
deb http://ftp.debian.org/debian jessie main

#vi /etc/apt/sources.list.d/mongodb-org-3.2.list
deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.2 main

apt安装

#apt-get update
#apt-get install mongodb-org
或者
#apt-get install mongodb-org=3.2.16 mongodb-org-server=3.2.16 mongodb-org-shell=3.2.16 mongodb-org-mongos=3.2.16 mongodb-org-tools=3.2.16

正在选中未选择的软件包 mongodb-org-shell。
(正在读取数据库 ... 系统当前共安装有 147397 个文件和目录。)
正准备解包 .../mongodb-org-shell_3.2.16_amd64.deb  ...
正在解包 mongodb-org-shell (3.2.16) ...
正在选中未选择的软件包 mongodb-org-server。
正准备解包 .../mongodb-org-server_3.2.16_amd64.deb  ...
正在解包 mongodb-org-server (3.2.16) ...
正在选中未选择的软件包 mongodb-org-mongos。
正准备解包 .../mongodb-org-mongos_3.2.16_amd64.deb  ...
正在解包 mongodb-org-mongos (3.2.16) ...
正在选中未选择的软件包 mongodb-org-tools。
正准备解包 .../mongodb-org-tools_3.2.16_amd64.deb  ...
正在解包 mongodb-org-tools (3.2.16) ...
正在选中未选择的软件包 mongodb-org。
正准备解包 .../mongodb-org_3.2.16_amd64.deb  ...
正在解包 mongodb-org (3.2.16) ...
正在处理用于 man-db (2.7.0.2-5) 的触发器 ...
正在设置 mongodb-org-shell (3.2.16) ...
正在设置 mongodb-org-server (3.2.16) ...
正在添加系统用户"mongodb" (UID 120)...
正在将新用户"mongodb" (UID 120)添加到组"nogroup"...
无法创建主目录"/home/mongodb"
正在添加组"mongodb" (GID 127)...
完成。
正在添加用户"mongodb""mongodb"...
正在将用户“mongodb”加入到“mongodb”组中
完成。
正在设置 mongodb-org-mongos (3.2.16) ...
正在设置 mongodb-org-tools (3.2.16) ...
正在设置 mongodb-org (3.2.16) ...
#dpkg -l |grep -i mongo
ii  **mongodb-org**          3.2.16   amd64        MongoDB open source document-oriented database system (metapackage)
ii  **mongodb-org-mongos**   3.2.16   amd64        MongoDB sharded cluster query router
ii  **mongodb-org-server**   3.2.16   amd64        MongoDB database server
ii  **mongodb-org-shell**    3.2.16   amd64        MongoDB shell client
ii  **mongodb-org-tools**    3.2.16   amd64        MongoDB tools

管理mongodb

查看配置文件

# cat /etc/mongod.conf

启动mongodb

#service mongod start
#service mongod status
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled)
   Active: active (running) since 三 2017-08-09 08:26:33 CST; 1h 44min ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 5775 (mongod)
   CGroup: /system.slice/mongod.service
           └─5775 **/usr/bin/mongod --config /etc/mongod.conf**

809 08:26:33 debian1 systemd[1]: Starting High-performance, schema-free document-ori......
809 08:26:33 debian1 systemd[1]: Started High-performance, schema-free document-orie...se.
Hint: Some lines were ellipsized, use -l to show in full.
#ps -ef|grep -i mongo
/usr/bin/mongod --quiet --config /etc/mongod.conf

#netstat -anop |grep -i 27017
#tail -f 200 /var/log/mongodb/mongod.log

关闭mongodb

#service mongod stop

重启mongodb

#service mongod restart

连接mongodb

初步安装好的mongodb为默认设置,没有启用用户验证。

创建管理员

root@debian1:/var/lib/mongodb# mongo
MongoDB shell version: 3.2.16
connecting to: test

use admin
db.createUser(
     {
       user:"pyb",
       pwd:"rootroot",
       roles:[{role:"root",db:"admin"}]
     }
  )

查看管理员

db.getUser('pyb')
{
    "_id" : "admin.pyb",
    "user" : "pyb",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

或者

db.getUsers()
[
    {
        "_id" : "admin.pyb",
        "user" : "pyb",
        "db" : "admin",
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ]
    }
]

修改 /etc/mongod.conf ,启用用户验证

# vi /etc/mongod.conf 
security:
  authorization: enabled
  keyFile: /var/lib/mongodb/mongoDB_keyfile 

官方对keyFile 的解释为: 该文件可以为任意内容,但是所有节点要一致

重启mongodb

#service mongod restart
#mongo 
use admin
db.auth("pyb", "rootroot" )
show dbs
admin  0.000GB
local  0.000GB

连接mongodb 的 web 管理界面

在 /var/log/mongodb/mongod.log 可以看到如下信息:

 I NETWORK  [initandlisten] waiting for connections on port 27017
 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
 I NETWORK  [websvr] admin web console waiting for connections on port 28017

27017 为 mongodb 的 port
28017 为 mongodb 的 web 管理页面 port

posted @ 2017-11-16 18:49  peiybpeiyb  阅读(160)  评论(0编辑  收藏  举报