安装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**
8月 09 08:26:33 debian1 systemd[1]: Starting High-performance, schema-free document-ori......
8月 09 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