|
|
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. 配置文件设置
- 默认配置文件路径:(Linux) 或
- C:\Program Files\MongoDB\Server\X.X\bin\mongod.cfg
复制代码 (Windows)
- 常用配置项:
- : 数据库文件存储路径
- : 监听端口(默认27017)
- : 绑定IP地址
- : 启用认证
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到最新稳定版
七、监控与维护
- 使用和监控性能
- 定期检查日志文件
- 监控磁盘空间使用情况
- 定期执行数据库维护操作
通过以上步骤,您可以成功部署和配置MongoDB环境,开始使用非关系型数据库处理您的数据需求。 |
|