mongodb 安装文档
mongodb 安装文档:
文件下载地址
www.mongodb.com/try/download/commu...
下载到本地并同步到测试服务器
ifconfig 命令找出本机ip地址并在测试服务器 ping 一下,能够ping通即可使用
找出本地的ip地址如下(自己的找自己对应的)
例如
10.19.0.222
同步代码到指定目录
执行下面的命令
scp dl@10.19.0.222:/Users/dl/Desktop/2222/mongodb.zip /usr/local/mongodb.zip
输入自己电脑的密码
****
解压压缩包
如果压缩包为zip格式
unzip mongodb.zip如果压缩包为gz格式
tar -xvf mongodb.tar.gz
修改配置文件
编辑配置文件,没有的时候会新增
vim /usr/local/mongodb/bin/mongodb.conf
#文件中追加如下内容
#数据存储路径,这个路径要提前创建好并赋予读写权限否则会报错
dbpath = /mongodb_data/data/db
#日志存储路径,这个路径要提前创建好并赋予读写权限否则会报错
logpath = /mongodb_data/data/logs/mongodb.log
port = 27017
fork = true
nohttpinterface = true
为数据和日志目录分配读写权限
chmod -R 777 mongodb_data
启动MongoDB
以配置文件的形式启动,这个时候mongodb.conf 里的配置就会生效
/usr/local/mongodb/bin/mongod -config /usr/local/mongodb/bin/mongodb.conf#成功返回的状态
about to fork child process, waiting until server is ready for connections. forked process: 20289 child process started successfully, parent exiting#失败返回的状态
about to fork child process, waiting until server is ready for connections.
forked process: 23595
ERROR: child process failed, exited with error number 48
这个时候需要看下存放数据以及日志的文件是有有读写权限
查看版本号
/usr/local/mongodb/bin/mongo --version
查看启动状态
ps -aux | grep 27017
或者
lsof -i tcp:27017```
- `以cli模式操作数据库`
进入操作页面
/usr/local/mongodb/bin/mongo
- `配置账号密码`
#执行命令
首次进入没有账号时
/usr/local/mongodb/bin/mongo
#返回结果如下
MongoDB shell version: 3.2.4
connecting to: test
user admin
db.createUser(
… {
… user:”admin”,
… pwd:”123456”,
… roles:[{role:”root”,db:”admin”}]
… }
… );
Successfully added user: {
“user” : “admin”, “roles” : [ { “role” : “root”, “db” : “admin” } ]}
#非第一次进入,需要通过这种方式进入,否则没有权限
mongo –port 27017 -u “admin” -p “123456” –authenticationDatabase “admin”
#配置针对某个数据库权限的账户,比如
use yapi
switched to db yapi
db.createUser({user:”root”,pwd:”123456”,roles:[{role:”dbOwner”,db:”yapi”}]})
Successfully added user: {
“user” : “root”, “roles” : [ { “role” : “dbOwner”, “db” : “yapi” } ]}
#已经创建的超级管理员账号
- `查看日志`
/usr/local/mongodb/bin/mongod –dbpath /mongodb_data/data
- `退出进程 `
kill -9 ***
######MongdoDb数据备份
- `编写sh脚本`
vim /mongodb_data/sh/mongod_bak.sh
#输入以下内容
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径
OUT_DIR=/mongodb_data/backup/mongod_bak/mongod_bak_now #临时备份目录
TAR_DIR=/mongodb_data/backup/mongod_bak/mongod_bak_list #备份存放路径
DATE=date +%Y_%m_%d
#获取当前系统时间
DB_USER=admin #数据库账号
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
TAR_BAK=”mongod_bak_$DATE.tar.gz” #最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #备份全部数据库
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件
- `查看备份的数据文件`
[root@izkci7zf4d4pbez mongod_bak_list]# pwd
/mongodb_data/backup/mongod_bak/mongod_bak_list
[root@izkci7zf4d4pbez mongod_bak_list]# du -sh *
8.0K mongod_bak_2020_09_28.tar.gz
[root@izkci7zf4d4pbez mongod_bak_list]#
**恢复数据到MongoDb**
- `解压备份的压缩包`
tar -xvf /mongodb_data/backup/mongod_bak/mongod_bak_list/mongod_bak_2020_09_28.tar.gz
#解压后的文件是
/mongodb_data/backup/mongod_bak/mongod_bak_list/mongodb_data
- `恢复数据库`
1.先关闭权限认证
[root@izkci7zf4d4pbez bin]# cat mongodb.conf
dbpath = /mongodb_data/data/db
logpath = /mongodb_data/data/logs/mongodb.log
port = 27017
fork = true
nohttpinterface = true
#关闭这个代码
#auth = true
2.执行恢复单个数据库代码
-drop
会先删除同名的数据库,可带可不带
/usr/local/mongodb/bin/mongorestore -drop -d yapi /mongodb_data/yapi
#测试环境恢复数据
/usr/local/mongodb/bin/mongorestore –drop -d yapi /mongodb_data/backup/mongod_bak/mongod_bak_list/mongodb_data/backup/mongod_bak/mongod_bak_now/2020_09_28/yapi
3.全量恢复
mongorestore –drop /mongodb_data/backup/mongod_bak/mongod_bak_list/mongodb_data/backup/mongod_bak/mongod_bak_now/2020_09_28
- `恢复权限,重启MongoDb`
lsof -i tcp:27017
kill -9 ***
/usr/local/mongodb/bin/mongod -config /usr/local/mongodb/bin/mongodb.conf
- `定时脚本每天凌晨1点半的时候执行数据备份脚本`
30 1 * * * /mongodb_data/sh/mongod_bak.sh
```
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: