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 协议》,转载必须注明作者和本文链接
good good study day day up
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!