安装前准备
在vi /etc/rc.local最后添加如下代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
/etc/security/limits.d/99-mongodb-nproc.conf
mongod soft fsize unlimited
mongod hard fsize unlimited
mongod soft cpu unlimited
mongod hard cpu unlimited
mongod soft as unlimited
mongod hard as unlimited
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 64000
mongod hard nproc 64000
安装部署
1.创建用户和组
[root@myhost home]# useradd mongod
[root@myhost home]# passwd mongod
2. 创建所需目录,因为使用的机器没有独立的/data,而home目录所在磁盘空间最大,所以放mongod用户家目录下
[root@myhost mongod]# su - mongod
[mongod@myhost ~]$ mkdir /home/mongod/conf
[mongod@myhost ~]$ mkdir /home/mongod/log
[mongod@myhost ~]$ mkdir /home/mongod/data
3.上传文件
上传文件到/home/mongod/ 下解压
[mongod@myhost ~]$ tar -zxvf mongodb-linux-x86_64-3.4.20.tgz
[mongod@myhost ~]$ ln -s mongodb-linux-x86_64-3.4.20 mongodb
4.添加环境变量
[mongod@myhost ~]$ vim .bash_profile
export PATH=/home/mongod/mongodb/bin:$PATH
[mongod@myhost ~]$ source .bash_profile
5 启动服务
[mongod@myhost ~]$ mongod --dbpath=/home/mongod/data --logpath=/home/mongod/log/mongodb.log --port=27017 --logappend --fork
about to fork child process, waiting until server is ready for connections.
forked process: 21773
child process started successfully, parent exiting
[mongod@myhost ~]$
登录服务
[mongod@myhost ~]$ mongo
6 使用配置文件
vim /home/mongod/conf/mongod.conf
systemLog:
destination: file
path: /home/mongod/log/mongodb.log
logAppend: true
storage:
journal:
enabled: true
dbPath: /home/mongod/data
directoryPerDB: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
net:
bindIp: 172.18.27.141,127.0.0.1
port: 27017
启动和停止服务
mongod -f /home/mongod/conf/mongod.conf
mongod -f /home/mongod/conf/mongod.conf --shutdown
创建管理员账号
use admin
db.createUser(
{
user: "root",
pwd: "root123",
roles: [ { role: "root", db: "admin" } ]
}
)
验证用户
db.auth('root','root123')
配置文件中加入配置
security:
authorization: enabled
重启
[mongod@myhost ~]$ mongod -f conf/mongod.conf --shutdown
killing process with pid: 22229
[mongod@myhost ~]$
[mongod@myhost ~]$ mongod -f conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 22263
child process started successfully, parent exiting
[mongod@myhost ~]$
登录认证
1. 方式一
use admin
db.auth('root','root123')
2.方式二
mongo -uroot -proot123 admin
mongo -uroot -proot123 172.18.27.141/admin
创建应用用户
use mydb
db.createUser(
{
user: "app01",
pwd: "app01",
roles: [ { role: "readWrite" , db: "mydb" } ]
}
)
登录:
[mongod@myhost conf]$ mongo -uapp01 -papp01 mydb
MongoDB shell version v3.4.20
connecting to: mongodb://127.0.0.1:27017/mydb
MongoDB server version: 3.4.20
>
查看mongodb中的用户
use admin
db.system.users.find().pretty()
删除用户
use mydb
db.dropUser("app01")
单机版的安装到此结束
备份
(1)** mongoexport/mongoimport
(2)***** mongodump/mongorestore
mongodump 介绍
$ mongodump --help
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
-j, --numParallelCollections= number of collections to dump in parallel (4 by default)
--oplog 备份的同时备份oplog
全量备份
mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -o /home/mongod/backup
备份mydb库
mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d mydb -o /home/mongod/backup
备份集合
mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d mydb -c mycollection -o /home/mongod/backup
压缩备份 加上 --gzip
mongorestore 恢复数据库
恢复mydb库
mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d mydb -o /home/mongod/backup/mydb
恢复集合
mongorestore -uroot -proot123 --port 27017 --authenticationDatabase admin -d mydb -c mycollection --gzip /mongodb/backup.bak/mydb/mycollection .bson.gz
--drop 恢复之前把原来的库删除掉
mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d mydb --drop -o /home/mongod/backup/mydb