🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
MongoDB 简介与安装 --- MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 总的来说,MongoDB 会是将来的主流 当然这部分 Shadow 也不是很熟。因为我以前是用 PHP+Mysql 的 Nodejs、MongoDB 和 JavaScript 也是刚接触不久 ## 部署 #### 1.安装 MongoDB >`sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5` >`sudo echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee `/etc/apt/sources.list.d/mongodb-org-3.6.list`` >`sudo apt-get update` >`sudo apt-get install -y mongodb-org` #### 2.验证 MongoDB 的版本号 >`mongod --version` >服务器返回内容 db version vx.x #### 3.启动 MongoDB >`$ sudo systemctl start mongod` #### 4.查看 MongoDB 状态 >`$ sudo systemctl status mongod` #### 5.配置 MongoDB >输入命令进入数据库 >`mongo` >装载数据库admin >`use admin` >创建用户admin至数据库admin并给予管理员权限 >`db.createUser( { user: "admin", pwd: "这里改成你要设置的密码", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )` >创建并装载您要使用的数据库 例如shadow >`use shadow` >创建用户shadow至数据库shadow并给予管理员权限 >`db.createUser( { user: "shadow", pwd: "这里改成你要设置的密码", roles: [ { role: "readWrite", db: "shadow" }, { role: "clusterMonitor", db: "admin" } ] } )` >退出Mongodb >`quit()` #### 6.修改 mongod.conf >更改MongoDB的mongod.conf来达到需要认证才能进入MongoDB程序的效果 >`sudo nano /etc/mongod.conf` >在最后添加以下内容 >``` >security: > authorization: enabled >``` #### 7.重启 MongoDB >`sudo systemctl restart mongod` >输入命令验证进入 mongodb >`mongo -u admin -p 这里改成你设置好的密码 --authenticationDatabase=admin` 至此 MongoDB 安装配置完成 --- ## 备份还原与迁移 以下以备份 Shadow 数据库为例 #### 1.备份 >备份MongoDB数据库 >创建一个文件夹让你来备份文件 >`sudo mkdir /var/sqlbackups/mongodb` >然后输入命令备份 >`sudo mongodump –db Shadow ––out /var/sqlbackups/mongodb/date +"%m-%d-%y"` >其中 Shadow (注意:所有Linux系统都是区分大小写的)为你要备份的数据库 /var/sqlbackups/mongodb/ 刚刚创建的文件夹 date +"%m-%d-%y" 新建一个文件夹名为目前的时间 >服务器应该返回的结果为: >``` >Output of mongodump > >2018-04-15T13:17:47.685-0500 writing Shadow.restaurants to /var/sqlbackups/mongodb/04-48-18/Shadow/restaurants.bson >2018-04-15T13:17:47.907-0500 writing Shadow.restaurants metadata to /var/sqlbackups/mongodb/04-48-18/Shadow/restaurants.metadata.json >2018-04-15T13:17:47.911-0500 done dumping Shadow.restaurants (0 documents) >2018-04-15T13:17:47.911-0500 writing Shadow.system.indexes to /var/sqlbackups/mongodb/04-48-18/Shadow/system.indexes.bson`` >``` >一般来说,我们需要对数据库进行定期备份。因此,大家可以将mongodump命令设置为cron任务以定期执行备份. >sudo crontab -e >在crontab提示符下输入以下命令: >``` >Crontab window > >3 3 * * * mongodump --out /var/sqlbackups/mongodb/`date +"%m-%d-%y"` >``` >根据MongoDB的具体规模,过频的备份可能导致磁盘空间不足。因此我们还需要定期清理一些旧的备份或者进行压缩。例>如通过以下命令每七天删除全部旧有备份: >`find /var/sqlbackups/mongodb/ -mtime +7 -exec rm -rf {} \;` >当然这也是可以加入到crontab中的 >`sudo crontab -e` >在crontab提示符下输入以下命令: >``` >Crontab window > >3 1 * * * find /var/backups/mongobackups/ -mtime +7 -exec rm -rf {} \; >``` >这样一来我们就不用担心数据会丢失了。 #### 2.还原 >还原很简单就一句命令,也不用去设置定期任务。 >`sudo mongorestore ––db Shadow ––drop /var/sqlbackups/mongodb/04-48-18/Shadow/` >服务器应该返回的结果为 >``` >Output of mongorestore > >2018-04-15T13:41:27.876-0500 building a list of collections to restore from /var/sqlbackups/mongodb/04-48-18/Shadow/ dir >2018-04-15T13:41:27.908-0500 reading metadata file from /var/sqlbackups/mongodb/04-48-18/Shadow/restaurants.metadata.json >2018-04-15T13:41:27.909-0500 restoring Shadow.restaurants from file /var/sqlbackups/mongodb/04-48-18/Shadow/restaurants.bson >2018-04-15T13:41:28.591-0500 restoring indexes for collection Shadow.restaurants from metadata >2018-04-15T13:41:28.592-0500 finished restoring Shadow.restaurants (0 documents) >2018-04-15T13:41:28.592-0500 done >``` >这样就成功的还原了数据库 #### 3.迁移 >这我就不多说了,就是把备份时生成的Shadow文件夹复制到另外一台服务器进行还原。 --- 好了。因为Shadow研究 MongoDB 时间也不长。自己也在学习当中。其他的就不多写了。 另外 MongoDB 和 Mysql 一样有可视化的管理工具。这请自行查找下载。 最后感谢您的收看。