目录
概述
MongoDB是一个非关系型数据库管理系统,它使用文档模型存储数据。MongoDB中的文档类似于JSON对象,可以包含键值对和嵌套文档。MongoDB提供了强大的查询语言、聚合框架、索引和直接在数据存储中运行的计算。
MongoDB被广泛应用于许多领域,特别是Web应用程序和大数据领域。它具有高度可扩展性和灵活性,可以处理多种数据类型。此外,MongoDB还提供了一系列工具和库,以方便开发人员在应用程序中使用它。
MongoDB可以存储Web内容管理系统的重要数据,例如页面和文章内容、标签等,以及和用户相关的数据。
安装部署
1.添加MongoDB的官方库
sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo
[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
2.安装MongoDB
sudo yum install mongodb-org -y
3.配置MongoDB
sudo vi /etc/mongod.conf
`bindIp`:绑定的 IP 地址。默认为 `127.0.0.1`,即本地访问,如果需要远程访问需要将其改为 `0.0.0.0`。
- `port`:端口号。默认为 `27017`,根据实际需要修改4.启动MongoDB
sudo systemctl start mongod
5.设置MongoDB为系统服务
udo systemctl enable mongod
可以使用以下命令检查服务的状态:
sudo systemctl status mongod
6.登录MongoDB
mongo
可以使用以下命令检查 MongoDB 的版本:
db.version()
设置密码
安装完MongoDB后,默认情况下没有密码,你可以直接登录MongoDB开始使用。不过,在生产环境中,强烈建议配置MongoDB的安全性设置,例如启用身份验证等
1. 使用mongo shell登录到MongoDB
2. 进入admin数据库:
use admin
3. 创建管理员账户:
db.createUser({ user: "admin", pwd: "yourpassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
其中,“yourpassword”为你要设置的密码
4. 退出mongo shell,重启mongod进程:
sudo systemctl stop mongod sudo systemctl start mongod
5. 再次使用mongo shell登录到MongoDB,使用以下命令验证登录:
mongo -u admin -p yourpassword --authenticationDatabase admin
操作命令
1. show dbs 显示所有数据库的列表
2. use <dbname> 选择要使用的数据库。如果该数据库不存在,则会创建一个新数据库
3. db.<collection>.find() 查找指定集合中的文档,例如:
db.users.find()
4. db.<collection>.insertOne() 在指定集合中插入一个新文档,例如:
db.users.insertOne( { name: "John", age: 30, city: "New York" } )
5. db.<collection>.updateOne() 更新指定集合中的一个文档,例如:
db.users.updateOne( { name: "John" }, { $set: { city: "San Francisco" } } )
6. db.<collection>.deleteOne() 删除指定集合中的一个文档,例如:
db.users.deleteOne( { name: "John" } )
7. db.<collection>.count() 返回指定集合中文档的数量
8. db.<collection>.drop() 删除指定集合
9. db.createUser() 创建一个新的数据库用户
10. db.dropDatabase() 删除当前使用的数据库
11. db.stats() 获取当前使用的数据库的状态信息
配置文件说明
MongoDB的配置文件是文本文件,用于指定MongoDB运行时的配置信息。采用使用配置文件的方式启动MongoDB可以使得管理和配置MongoDB更为方便。
MongoDB的配置文件在启动时需要指定,通常可以使用`mongod --config`命令来指定
- bindIp:绑定的IP地址,默认值为`0.0.0.0`,表示可以连接所有的IP地址。可以通过指定一个特定的IP地址或者多个来限制MongoDB的访问
- port:MongoDB监听的端口,默认端口号为27017
- dbpath:MongoDB数据库使用的文件夹路径,默认路径为`/data/db`
- logpath:MongoDB日志文件的路径
- logappend:如果设置为true,则MongoDB的日志文件使用追加模式
- quiet:如果设置为true,则MongoDB不输出任何日志信息
- pidfilepath:MongoDB进程ID文件路径
- maxConns:MongoDB允许连接的最大数量,默认值为`20000`
-maxIncomingConnections:MongoDB允许同时打开的最大连接数,默认值为`65536`
- storage:MongoDB存储引擎,默认为`wiredTiger`
使用配置文件启动MongoDB的示例命令:mongod --config /etc/mongod.conf
备份操作
MongoDB有多种备份方式,其中包括热备份和冷备份两种方式
备份是MongoDB管理的重要组成部分,定期备份MongoDB数据库是保证数据安全性的重要手段之一。对于生产系统,推荐使用自动化的备份解决方案
1. 热备份
使用mongodump命令导出MongoDB的备份数据。以下命令将备份数据导出到`/data/backup`目录下:
mongodump --out /data/backup
如果需要对导出的备份数据进行压缩,可以使用以下命令:
tar -czvf backup.tar.gz /data/backup
2. 冷备份
使用MongoDB的`mongodump`命令导出MongoDB的备份数据。以下命令将备份数据导出到`/data/backup`目录下:
mongodump --out /data/backup
停止MongoDB服务:
sudo systemctl stop mongod
使用tar命令将漏斗备份数据压缩成一个文件:
tar -czvf backup.tar.gz /data/backup
启动MongoDB服务:
sudo systemctl start mongod
还原操作
MongoDB使用mongorestore命令将备份数据还原到MongoDB中
以下是将MongoDB备份数据还原的简单步骤。在实践中,备份和还原数据时需要谨慎操作,以确保数据的完整性和安全性
解压备份文件 首先,需要解压缩MongoDB备份文件。假设备份文件`backup.tar.gz`被解压到了`/data/backup`目录,使用以下命令解压备份文件:
tar -xzvf backup.tar.gz -C /data/backup
停止MongoDB服务 在还原备份数据期间,需要停止MongoDB服务以避免出现意外。使用以下命令停止MongoDB服务:
sudo systemctl stop mongod
使用mongorestore命令还原备份数据
该命令将备份数据恢复到原来的集合和数据库中,也可以通过指定`--db`参数将备份数据恢复到一个新的数据库中
使用mongorestore命令将备份数据还原到MongoDB中。以下命令将备份数据恢复到MongoDB:
mongorestore /data/backup
重启MongoDB服务 还原备份数据后,重启MongoDB服务:
sudo systemctl start mongod