MongoDB安装部署与非关系型数据库环境搭建
MongoDB安装部署与非关系型数据库环境搭建指南一、MongoDB简介
MongoDB是一个基于分布式文件存储的开源非关系型(NoSQL)数据库系统,具有高性能、高可用性和易于扩展等特点,特别适合处理大量非结构化或半结构化数据。
二、MongoDB安装部署
1. 准备工作
[*]确认系统要求(Linux/Windows/macOS)
[*]确保有足够的磁盘空间(建议至少10GB)
[*]确保网络连接正常
2. Linux安装(以Ubuntu为例)
# 导入MongoDB公钥
wget -qO - https://www.mongodb.org/static/pgp/server-X.X.X.asc | sudo apt-key add -# X.X.X替换为版本号
# 添加MongoDB仓库
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/X.X multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-X.X.list
# 更新包列表并安装
sudo apt-get update
sudo apt-get install -y mongodb-org
# 启动MongoDB服务
sudo systemctl start mongod
sudo systemctl enable mongod
3. Windows安装
[*]从MongoDB官网下载MSI安装包
[*]运行安装程序,选择"Complete"安装类型
[*]安装完成后,配置环境变量(将MongoDB的bin目录添加到PATH)
[*]以管理员身份运行命令提示符,启动MongoDB服务
4. 验证安装
mongod --version
# 或连接数据库
mongo --eval "db.runCommand({ connectionStatus: 1 })"
三、MongoDB环境配置
1. 配置文件设置
[*]默认配置文件路径: /etc/mongod.conf (Linux) 或 C:\Program Files\MongoDB\Server\X.X\bin\mongod.cfg (Windows)
[*]常用配置项:
[*]storage.dbPath: 数据库文件存储路径
[*]net.port: 监听端口(默认27017)
[*]net.bindIp: 绑定IP地址
[*]security.authorization: 启用认证
2. 启用认证
# 在配置文件中添加
security:
authorization: enabled
3. 创建管理员用户
mongo
> use admin
> db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
四、非关系型数据库环境搭建要点
1. 数据模型设计
[*]MongoDB使用集合(collection)代替表,文档(document)代替行
[*]设计时考虑数据访问模式,合理使用嵌入文档和引用
[*]不需要预定义严格的数据结构(动态模式)
2. 索引优化
[*]为常用查询字段创建索引
[*]监控慢查询并优化
[*]定期重建碎片化索引
3. 性能调优
[*]合理配置内存和缓存大小
[*]启用分片(sharding)实现水平扩展
[*]使用副本集(replica set)实现高可用
五、基本操作示例
// 连接数据库
mongo
// 创建数据库(使用即创建)
use mydb
// 插入文档
db.users.insertOne({
name: "张三",
age: 30,
email: "zhangsan@example.com",
hobbies: ["阅读", "游泳"]
})
// 查询文档
db.users.find({age: {$gt: 25}})
// 更新文档
db.users.updateOne(
{name: "张三"},
{$set: {age: 31}}
)
// 删除文档
db.users.deleteOne({name: "张三"})
六、安全建议
[*]启用认证和授权
[*]限制网络访问(防火墙配置)
[*]定期备份数据
[*]启用加密传输(TLS/SSL)
[*]定期更新MongoDB到最新稳定版
七、监控与维护
[*]使用mongostat和mongotop监控性能
[*]定期检查日志文件
[*]监控磁盘空间使用情况
[*]定期执行数据库维护操作
通过以上步骤,您可以成功部署和配置MongoDB环境,开始使用非关系型数据库处理您的数据需求。
页:
[1]