MongoDB(一)安装与入门

本文详细介绍了如何下载并安装MongoDB,包括Linux系统的版本选择及安装步骤。此外,文章还提供了启动和关闭MongoDB的方法,解释了关键启动参数的作用,并介绍了主从复制、客户端连接、安全授权等高级功能的实现。最后,通过示例展示了如何在MongoDB客户端执行基本操作,如插入文档和查看记录。

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

下载MongoDB


根据自己的系统下载相应的版本:MongoDB官网


安装


我下载的是linux的3.2.8版本,直接解压压缩包得出MongoDB的目录,如mongodb-3.2.8,即可使用。


启动和关闭MongoDB


以下文章中,无特殊说明则用${mongodb_home}来表示MongoDB目录

切换到${mongodb_home}/bin下,

输入以下命令,可以查看一系列MongoDB的启动可选参数,当然不同版本启动可选参数会有所不同的。

./mongod  -- help

启动MongoDB

/home/mongodb-3.2.8/bin/mongod --dbpath /home/mongodb-3.2.8/data/db --port 28017 --fork
--pidfilepath /home/mongodb-3.2.8/mongodb.pid --rest --auth --logpath /home/mongodb-3.2.8/logs/mongod.log 
--logappend --logRotate rename

启动参数说明:

数据库的数据保存目录,linux下默认是/data/db

--dbpath <path>
MongoDB的监听端口

--port <port>
以守护进程方式启动

--fork
MongoDB进程pid保存文件

--pidfilepath <path>
启动rest接口来访问MongoDB,比如MongoDB监听端口是27017,则可以通过http://host:28017来查看MongoDB的运行情况,rest的端口是比启动时设置端口多1000的。

--rest

开户登录认证模式

--auth

指定日志

--logpath <path>

指定日志在原来基础上累加

--logappend

logRotate的参数可以是 rename 或者reopen

--logRotate <string>

rename,旧日志文件名会加上时间戳:

<YYYY>-<mm>-<DD>T<HH>-<MM>-<SS>
然后原来的文件名来保存最新的日志


在linux下,可以使用kill 命令关闭,如

kill -signal pid
kill -2 pid

此外,可以在admin数据库下,使用db.shutdownServer();使用关闭MongoDB。


主从复制

主节点


在主节点启动参数加上--master

 --master

如启动命令:

/home/mongodb-3.2.8/bin/mongod --dbpath /home/mongodb-3.2.8/data/db --port 28017 --fork
 --pidfilepath /home/mongodb-3.2.8/mongodb.pid
 --rest --logpath /home/mongodb-3.2.8/logs/mongod.log --logappend --logRotate rename --master

从节点


在从节点启动参数加上 --slave --source <master_host><:master_port>

如启动命令:

/home/mongodb-3.2.8/bin/mongod --dbpath /home/mongodb-3.2.8/data/db --port 27017 --fork
 --pidfilepath /home/mongodb-3.2.8/mongodb.pid
 --rest --logpath /home/mongodb-3.2.8/logs/mongod.log --logappend --logRotate rename --slave --source 192.168.20.110:28017
如上命令,主节点是192.168.20.110:28017

注意:

在官方的3.2版本的文档中提到“主从复制”的模式已经当作不赞成的作法,见下文

Deprecated since version 3.2: MongoDB 3.2 deprecates the use of master-slave replication for components of sharded clusters.

官方建议分片集成方式的作法。

[出自:https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod]


主从客户端连接异常


使用shell客户端连接MongoDB

./bin/mongo --port 27017
> db
test
> db.foo.find();
Error: error: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }
其中出现上面这个Error,解决这个Error可以使用以下命令:

> rs.slaveOk();
> db.foo.find();
{ "_id" : ObjectId("580e2df87f34ac23969dfdf8"), "name" : "lam" }


MongoDB的使用


启动了MongoDB服务后,可以在cmd命令行下,切换到bin目录下,输入mongo命令进入MongoDB的客户端命令行模式下,

mongo相关的可选项可以通过mongo --help 查看可选项,默认进入test数据库,

查看当前使用的数据库:

 > db ;
查看所有的数据库:

 > show dbs ;
插入一个文档(文档是MongoDB存储数据的一种类型,类型关系数据库的行)

 > db.foo.insert({ 'a' : 'value of a' }) ;
查看记录

 > db.foo.find();

切换数据库:

> show dbs ;
查看当前数据库的用户:

> show users ;



MongoDB的安全授权


安全授权可以用创建用户,绑定可连接IP来设置数据库的安全。

切换到admin数据库:

> use admin ;
admin数据库中的用户会被视为超级用户,即管理员,创建一个管理员:

> db.addUser( { 'root' : 'abcd'} ) ;
再切换到test数据库,创建一个只读权限用户、一个读/写权限用户:

>db.addUser( {'test_user' : 'pwd' ,true} );
>db.addUser( {'test_use2' : 'pwd' }) ;
其中第三个参数,true : 只读权限,false或不设置 :读/写权限。

此外,db.addUser不仅可以创建用户,还可以设置用户名、新密码或只读权限。

创建用户后,重启MongoDB数据库,这次启动时,启动参数加上 --auth ,开户安全检查。

在MongoDB客户端下,

用户安全认证:

>db.auth( 'test_user','pwd');
可以进行读/写操作

当然,也可以在启动客户端时,使用数据库的用户名/密码,连接数据库:

> mongo -u [user_name] -p [password] ;

...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值