0

0

mongodb如何快速搭建属于自己的数据库

青灯夜游

青灯夜游

发布时间:2018-09-21 17:03:47

|

2599人浏览过

|

来源于php中文网

原创

本章给大家介绍mongodb如何快速搭建属于自己的数据库。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

mongoddb安装

  • 在本地安装

直接通过官网下载机子对应的压缩包 mongodb

  • 在云服务器(centos系统)安装

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.9.tgztar zxvf mongodb-linux-x86_64-3.2.6.tgz
mv mongodb-linux-x86_64-3.2.6.tgz mongodb
cd mongodb

1.png

请根据你的的系统下载相应的版本~

环境配置&启动服务器

在文件目录下建立存放数据的文件夹 一般目录就是 /usr/local/mongodb/data/db/ 通过运行命令去启动mongodb

./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest

这里有几个参数重点说明一下,mongod为你mongodb 的命令行支持可以启动,如果有需要可以通过编辑 /etc/profile 编辑进 全局环境,dbpath 也就是数据路径,对应你建立的data目录即可。--rest则是一个图形支持
mongodb的默认路径为 //localhost:27017 运行成功后访问这个地址酒会有成功的提示 加上rest参数 可以访问//localhost:28017

./bin/mongo 可以打开shell
常用命令:

#查询所有数据库    show dbs;
#删除当前使用数据库   db.dropDatabase(); 
#克隆主机数据   db.cloneDatabase(“127.0.0.1”); 
#修复当前数据库 db.repairDatabase(); 
#查看当前使用的数据库  db.getName(); 
#显示当前db状态  db.stats(); 
#查看当前db的链接机器地址  db.version();

云服务器上部署mongodb环境

现在云端非常流行,很多人选择了用云服务器来部署自己的项目,这里就介绍一下云端的mongodb配置。

./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest

数据库部署到云服务器就需要后台运行,一开始用的centos的forever插件,发现并不能后台运行数据库。查阅了一下资料发现官方就有命令 --fork 启动后台服务 --logpath --logappend参数 为后台服务加个log日志 rest效果同上面。

让数据库更直观

密密麻麻的数据是不是很丑?很难受?这个时候我们就需要一个美化数据库的插件了

网上有很多 如 mongovue , adminmongo 可以搜索活着Github上查阅一下。

以下是数据库加密,我也是上线被攻击后才痛定思痛更新了加密过程。

添加超级管理员

首先,运行你的数据库,成功后执行shell操作。

> use admin
> db.createUser(
   {
     user: "your name",
     pwd: "your pwd",
     roles: [ { role: "root", db: "admin" } ]
   }
)
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

root表示超级权限,这样就创建了具有超级权限的账号了。可以通过以下命令来查看用户。

[Uploading image_088895.png . . .]

db.getUsers()

MongoDB数据库角色

role指角色,管理控制数据库的权限,第一个用户最好是root用户,可以执行任何操作,

MVM mall 网上购物系统
MVM mall 网上购物系统

采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压

下载

初始化最好创建root权限的用户,当开启auth模式,任何操作都需要权限才能执行。也千万不能直接auth启动后台运行模式,否则你就没有权限用户去关闭数据库。

  • Read:允许用户读取指定数据库

  • readWrite:允许用户读写指定数据库

  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

  • root:只在admin数据库中可用。超级账号,超级权限

启动auth模式

在创建完超级管理员后,才能真正启动加密的数据库,否则即使你自己也无权去操作数据库。

 //后台模式需要在shell中关闭之前的普通模式数据库,输入以下命令
 > use admin
 > db.shutdownServer()
//终端 启动加密数据库 --auth
$ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth
//通过命令运行数据库 ,在你的运行命令加上后缀 --auth,这样就启动了加密数据库 ,再次执行数据库操作
> show dbs
2017-09-23T14:09:58.922+0800 E QUERY    [thread1] Error: listDatabases failed:{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
    "code" : 13,
    "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
//  发现报错,需要认证信息
> db.auth('your name','your pwd')
成功返回1  失败返回0 输入之前创建的超级账号,OK,简单的加密就完成了。

 2.png

加密成功,需要认证才能操作数据库

链接加密数据库

数据库加密后我们的服务端代码也要相应变动。

xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');

xxx表示你用的插件 比如 mongoose 、mongoskin之类的。

到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Django 教程
Django 教程

共28课时 | 3.4万人学习

Excel 教程
Excel 教程

共162课时 | 13.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号