MongoDB  入门

本文是MongoDB入门教程,介绍了Windows和CentOS 7系统下MongoDB的安装方法,包括不同安装方式、用户创建、权限设置及服务安装与卸载等,还给出了报错解决办法。此外,列举了MongoDB的常用语法和命令,如数据库操作、用户创建、数据增删查等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB  入门

官网 https://www.mongodb.com/

一、安装

1.1 Windows安装Mongo

先下载安装文件,启动安装界面后选择Custom安装,安装路径选择D:\programs\MongoDB\Server\3.4,按向导完成安装。

创建D:\programs\MongoDB\data\db目录,以管理员身份运行cmd

cd D:\programs\MongoDB\Server\3.4\bin

1.1.1 不使用 --auth

mongod --dbpath D:\programs\MongoDB\data\db

mongo    连接mongodb

show dbs

use admin

db.getName()

db.createUser(

  {

    user: "admin",

    pwd: "admin",

    roles:[{ role: "userAdminAnyDatabase", db: "admin"}]

  }

)

show users

db.shutdownServer()     关闭 mongoDB

1.1.2 创建用户后,使用 --auth

创建一个配置文件位于 D:\programs\MongoDB\mongod.cfg,内容:

systemLog:

   destination: file

   path: D:\programs\MongoDB\data\log\mongod.log

   logAppend: true

storage:

   dbPath: D:\programs\MongoDB\data\db

net:

   bindIp: 127.0.0.1

   port: 27017

 

mongod --auth -f D:\programs\MongoDB\mongod.cfg

mongo   没有auth前所有操作都会失败

db.auth("admin", "admin")

show dbs

show collections  报错,因为admin只有用户管理的权限

下面创建用户,用户都跟着库走,创建的用户都是

use crm 

db.createUser(

{

  user: "yinww",

  pwd: "hello123",

  roles: [

    {role: "readWrite", db: "crm"}

  ]

 }

)

查看整个mongoDB全部的用户

use admin

db.system.users.find()

db.shutdownServer()   报错Unauthorized,是缺少hostManger的这个角色,这个角色具有shutdown的权限

db.grantRolesToUser("admin", [{role: "hostManager", db: "admin"}])   给admin赋予hostManager权限

db.auth("yinww","hello123")

show collections

 

安装 MongoDB服务

mongod.exe --auth --config D:\programs\MongoDB\mongod.cfg --install  (需要以管理员身份运行的cmd)

或者通过sc create创建服务

sc create MongoDB binpath= "D:\programs\MongoDB\Server\3.4\bin\mongod.exe --dbpath D:\programs\MongoDB\data\db --logpath D:\programs\MongoDB\data\log\mongod.log --logappend --bind_ip 127.0.0.1 --port 27017 --auth --service" start= auto

mongod具体的参数可通过mongod --help查询到。

mongod.exe  --remove   卸载服务

 

1.1.3 报错:[main] Error connecting to the Service Control Manager: 拒绝访问。 (5)

原因:cmd没有用管理员权限

解决:以管理员身份运行cmd

 

1.2 CentOS7安装Mongo

1.2.1 安装

https://www.mongodb.com/ 下载RHEL 7 Linux 64-bit x64版本mongodb-linux-x86_64-rhel70-3.4.10.tgz ,上传到/home/yinww/soft

tar zxvf mongodb-linux-x86_64-rhel70-3.4.10.tgz

mv mongodb-linux-x86_64-rhel70-3.4.10 mongodb

mv mongodb /home/yinww/

cd /home/yinww/mongodb/

mkdir logs

mkdir data

vi mongod.cfg   内容

dbpath=/home/yinww/mongodb/data

logpath=/home/yinww/mongodb/logs/mongod.log

bind_ip=127.0.0.1

port=27017

fork=true

 

groupadd mongod

useradd mongod -g mongod

cd ..

chown -R mongod:mongod mongodb

/home/yinww/mongodb/bin/mongod -f /home/yinww/mongodb/mongod.cfg    非auth启动,创建用户

cd /home/yinww/mongodb/bin

./mongo

show dbs

use admin

db.version()

db.createUser(

  {

    user: "admin",

    pwd: "admin",

    roles:[{ role: "userAdminAnyDatabase", db: "admin"}]

  }

)

可以根据需要创建多个用户

db.shutdownServer()

quit()

1.2.2、安全设置

vi mongod.cfg 添加一行

auth=true

rest=false

/home/yinww/mongodb/bin/mongod -f /home/yinww/mongodb/mongod.cfg  重新启动mongo,此时是auth启动

 

1.3、参考资料:

https://docs.mongodb.com/manual/reference/configuration-options/

https://docs.mongodb.com/manual/tutorial/enable-authentication/

 

二、MongoDB语法和命令:

> db.help()

> use admin

> db.auth("admin", "admin")

> show dbs

> use crm

> db.auth("yinww", "hello123")

> show collections

> db.stats()

{

        "db" : "crm",

        "collections" : 2,

        "views" : 0,

        "objects" : 1,

        "avgObjSize" : 92,

        "dataSize" : 92,

        "storageSize" : 40960,

        "numExtents" : 0,

        "indexes" : 2,

        "indexSize" : 40960,

        "ok" : 1

}

> db

> db.getName()

> db.user.find()

> db.user.insert({"name":"mayun", "age":50})

> db.user.remove({"_id": ObjectId("5a0c36622f7bacfe592c2f4f")})

> db.createCollection("module")

> show collections

> db.user.findOne()

> db.user.count()

 

use DATABASE_NAME

如果数据库不存在,则指向数据库,但不创建(等待实际数据入库时创建),否则切换到指定数据库。

 

创建用户

> db.createUser(

{

  user: "smsadmin",

  pwd: "hello123",

  roles: [

    {role: "readWrite", db: "sms"}

  ]

 }

)

> db.dropDatabase()   删除当前的数据库

本文内容到此结束,更多内容可关注公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值