• 当前标签:MongoDB

网站建设 shell备份mongodb脚本,适用于宝塔面板

使用shell脚本定时备份mongo数据库,借助宝塔面板的定时任务来执行 # 在文件中编写如下内容 ## 指定到你安装的Mongodb bin目录下的mongodump dump=/www/server/mongodb/bin/mongodump ## 填写你创建dump_bak文件的绝对路径 out_dir=/www/wwwroot/yh.dev20.cn/dump_bak ## 填写你创建tar_bak文件的绝对路径 tar_dir=/www/wwwroot/yh.dev20.cn/tar_bak ## 记录备份时间 sysdate=`date +%Y%m%d_%H%M%S` ## 设置删除期限,删除30天前的备份 days=30 ## 设置最终压缩的文件名称,带有日期 tar_bak="mondodb_bak_$sysdate.tar.gz" if [ -d $out_dir ];then cd $out_dir else ## "文件夹不存在" sudo mkdir -p $out_dir cd $out_dir fi if [ ! -d $tar_dir ];then ## "文件夹不存在" sudo mkdir -p $tar_dir fi # 删除之前的dump文件 sudo rm -rf $out_dir/* # 创建新的文件夹存放dump文件 sudo mkdir -p $out_dir/$sysdate # 导出127.0.0.1机器上的hnyh库的所有表到$out_dir/$sysdate文件夹 $dump -h 127.0.0.1 -d hnyh -o $out_dir/$sysdate # 压缩$out_dir/$sysdate到目标文件夹 sudo tar -zcvf $tar_dir/$tar_bak $out_dir/$sysdate # 删除指定期限钱的备份文件 sudo find $tar_dir/ -mtime +$days -delete echo "===数据库: hnyh 备份完成===" # 退出 exit 执行数据库备份那里(dump -h 127.0.0.1 -d hnyh -o $out_dir/$sysdate)根据自己需求来修改 然后在宝塔的定时任务那里添加shell任务 如果脚本不是在宝塔用的话,需要修改 dump=/www/server/mongodb/bin/mongodump 地址为你安装mongo的地址

2020-06-17 10:03:17 402 0 0
阅读详情

电脑&系统 docker 下备份和恢复mongodb

备份 进入docker容器: docker exec -it mongo /bin/bash 使用mongo命令备份 有密码: mongodump -h 127.0.0.1 --port 27017 -u=用户名 -p=密码 -d test -o /home/dump 参数 作用-h host--port 端口-d 指定数据库-o 指定备份到哪个目录,不指定应该是直接备份到根目录的/dump文件夹-u 用户名-p 密码test 数据库名称 系统备份成功会在/home/dump目录下自动生成一个数据库名的文件夹/test,里面是全部Collection备份的bson和json文件。 无密码: mongodump -h dbhost -d dbname -o dbdirectory -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017-d:需要备份的数据库实例,例如:test-o:备份的数据存放位置,例如:/home/dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。 打包备份文件 tar czvf test.tar test 退出容器 exit 从容器复制到电脑 docker cp mongo:/home/dump/test.tar /home 恢复 恢复和备份差不多,就把mongo备份命令改为恢复的命令 mongorestore -h <hostname><:port> -d dbname <path> 复制文件到容器: docker cp /home/test.tar mongo:/home/dump

2020-06-08 11:24:42 302 0 0
阅读详情

电脑&系统 deepin下docker安装mongodb

sudo apt install docker.io sudo docker pull mongo 查看镜像:docker images 如果出现 Got permission denied while trying to connect to the Docker,查看 Docker运行 Got permission denied while trying to connect to the Docker 解决 启动mongo docker run -itd --name mongo -p 27017:27017 mongo 如果想设置mongo密码 docker exec -it mongo mongo admin # 创建一个名为 admin,密码为 123456 的用户。 > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]}); # 尝试使用上面创建的用户信息进行连接。 > db.auth('admin', '123456') 设置开机启动docker systemctl enable docker.service docker容器自动启动,两种方法 1、 docker ps -a docker restart imageid 2、在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启: docker run --restart=always 如果已经启动了则可以使用如下命令: docker update --restart=always <CONTAINER ID>

2020-06-02 10:44:33 572 0 0
阅读详情

程序开发 Mongoose二级连表查询

首先定义两个Schema,然后 model ; DB.js // 分类 let CategorieSchema = new mongoose.Schema({     "name" : String,     "img" : String,     "date": Date }); CategorieSchema.index({ "date": 1}); // 商品 let GoodsSchema = new mongoose.Schema({     "name" : String,     "img" : String,     "date": Date,     "count": Number,     "content": String,     "categoryId": {         type: mongoose.Schema.ObjectId,         ref: 'n_categorie'  // 此处名称为let n_goods 的n_goods 区分大小写     } }); GoodsSchema.index({ "name": 1, "categoryId": 1}); GoodsSchema.statics = {     findCategoryByGoodsId:function (goodsId,callback) {         return this.findOne({_id: goodsId}).populate('categoryId').exec(callback)     } }; //model let n_categorie = mongoose.model("n_categorie",CategorieSchema); let n_goods = mongoose.model("n_goods",GoodsSchema); exports.n_categorie = n_categorie; exports.n_goods = n_goods; 在需要的地方查询: const DB = require("../model/DB.js"); DB.n_goods.findCategoryByGoodsId('5afc612ebe2db7194a3a703a',function (err ,category) {         if (err) console.log(err)         console.log(category.categoryId.name)  })  

2018-05-17 00:58:20 673 0 0
阅读详情
  • 1
前往