服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - MongoDB的基本安装与管理命令脚本总结

MongoDB的基本安装与管理命令脚本总结

2020-05-07 15:47lucifercn MongoDB

MongoDB是一款高人气的NoSQL数据库,且以JavaScript代码作为脚本进行操作,对开发者非常友好,这里我们就来看一下MongoDB的基本安装与管理命令脚本总结

安装
1. Linux安装MongoDB
1.1 创建数据目录和日志文件:

?
1
2
mkdir -p /data/node/
touch /data/mongodb.log

1.2 安装mongodb:

?
1
2
3
4
tar zxf mongodb-linux-x86_64-2.4.9.tgz
mv mongodb-linux-x86_64-2.4.9 /opt/mongodb
echo "export PATH=$PATH:/opt/mongodb/bin" >>/etc/profile
source /etc/profile

1.3 创建新从节点配置文件:

?
1
cat >> ~/.mongodb.conf <<EOF
?
1
2
3
4
5
6
fork = ture
port = 11000
dbpath = /data/node
logpath = /data/mongodb.log
logappend = true
EOF

1.4 启动MongoDB

?
1
mongod --config ~/.mongodb.conf

2. Windows安装MongoDB
2.1 下载并解压

?
1
mongodb-win32-x86_64-2008plus-2.4.9.zip

2.2 添加服务

?
1
# mongod -f d:\mongodb\mongodb.cfg --serviceName MongoBD --install

2.3 启动服务

?
1
# net start mongodb

2.4 删除服务

?
1
# mongod --remove

2.5 MongoDB启动配置文件

?
1
2
3
4
5
6
mongodb.cfg -->
logpath=d:\data\mongo.log
dbpath=d:\data
logappend=true
auth=true
#fork=true

管理
管理MongoDB无论是备份还是带有复制的多节点系统,都有快捷的方式。系统会自动完成各种配置。
(1)MongoDB是一个普通命令行程序,用mongod调用。
(2)MongoDB提供了内置的管理接口和监控功能,易与第三方监控包集成。
(3)MongoDB支持基本的,数据库级别的用户认证,包括只读用户,以及独立的管理员权限。
(4)多种方式备份MongoDB。

1.启动停止MongoDB
1.1 命令行启动

命令行启动,可以mongod --help查看所有选项。
(1)--dbpath 默认值为/data/db/。每个Mongod进程都需要独立的数据目录,要有三个mongod实例,必须要有三个独立的数据目录。mongodb启动时,会在数据目录喜爱创建mongod.lock文件,防止其他mongod进程使用该数据目录。
(2)--port
指定监听端口,默认为27017,运行多个mongod进程,需要指定不同的端口号。
(3)--fork
以守护进程运行mongodb,创建服务器进程。
(4)--logpath
指定日志输出路径,而不是输出命令行,它会覆盖已有文件,清除原来的日记记录。如果要保留,需要使用--logappend选项。
(5)--config
指定配置文件,加载命令行未指定的各种选项。
1.2 配置文件
MongoBD支持从文件获取配置信息。指定配置文件可以用-f或者--config选项。例如:

?
1
2
# mongod --config ~/.mongodb.conf
cat > ~/.mongodb.conf <<EOF
?
1
2
3
4
5
6
port = 10001
fork = true
logpath = /data/mongodb.log
dbpath = /data/node2
logappend = true
EOF

1.3 停止MongoDB
数据库关闭方法:
(1)kill -2 SIGTERM或者kill -2 SIGINT,可以稳妥退出,会等到当前运行的操作或者文件预分配,关闭所有打开的连接,将缓存的数据刷新到磁盘,最后停止。
不能kill -9(SIGKILL),这样会导致数据文件损毁。
(2)使用管理命令{"shutdown" : 1}

?
1
2
> use admin
> db.shutdownServer();

2.监控
2.1 使用管理接口

启动MongoDB时,会启动一个非常基本的HTTP服务器,该服务器监听的端口比主服务器大1000。呈现的信息可以通过shell查看,也可以通过web页面查看。
要利用好管理接口,需要用--reset选项开启REST支持。也可以在启动时使用--nohttpinterface关闭管理接口。
2.2 serverStatus
serverStatus呈现了MongoDB内部详细信息,比如服务器的版本,运行时间,当前连接数。

?
1
2
3
MongoDB shell version: 2.4.9
connecting to: 127.0.0.1:10001/test
> db.runCommand({serverStatus : 1})

"globalLock"表示全局写入锁占用了服务器多少时间(微秒)。"mem"包含服务器内存映射了多少数据,服务器进程的虚拟内存和常驻内存占用情况;
(1)"indexCounters"表示B树在磁盘检索和内存检索的次数;
(2)"backgroudFlushing"表示后台做了多少次fsync以及用了多少时间;
(3)"opcounters"包含了每种主要操作的次数。
2.3 mongostat
mongostat输出serverStatus提供的重要信息。每秒钟输出新的一行,比之前看到的静态计数实时性更好。分别为insert/s,commands/s,vsize和%locked。
2.4 第三方插件
支持Nagios,Munin,Ganglia,Cacti的MongbDB插件。

3.安全
MongoDB支持对单个连接的认证。
3.1 认证的基础知识
每个MongoDB实例中的数据库都可以有很多用户。开启认证后,只有数据库认证用户才能执行读写操作。
认证后,管理员可以读写所有的数据库,执行特定的管理命令。
开启安全认证前,需要有管理员帐号。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
> use admin
switched to db admin
> db.addUser("root", "root123");
{
  "user" : "root",
  "readOnly" : false,
  "pwd" : "81c5bca573e01b632d18a459c6cec418",
  "_id" : ObjectId("530bd17622cceb4323a2b500")
}
> use test
switched to db test
> db.addUser("test_user", "root123", true);
{
  "user" : "test_user",
  "readOnly" : true,
  "pwd" : "d436badec207e3821abbaf337fcbdd06",
  "_id" : ObjectId("530bd24322cceb4323a2b501")
}

在shell中创建只读用户将adduser的第三个参数设为true。调用addUser()必须对数据库有写权限。
addUser不仅可以增加新用户,还能修改用户口令或只读状态。
重启服务器,加入--auth选项,开启安全检查。

?
1
2
3
4
> use admin
switched to db admin
> db.auth("root", "root123");
1

3.2 认证的工作原理
数据库用户帐户以文档形式存储在system.users集合里面。

?
1
2
3
4
> use admin
switched to db admin
> db.system.users.find();
{ "_id" : ObjectId("530bd17622cceb4323a2b500"), "user" : "root", "readOnly" : false, "pwd" : "81c5bca573e01b632d18a459c6cec418" }

可以执行

?
1
db.system.users.remove({"user":"root"});

删除帐号。
用户认证时,服务器将认证和连接绑定来跟踪认证。
3.3 其他安装考虑
除了认证还有许多选项来锁定MongoDB实例。即便使用认证,MongoDB传输协议是不加密的。如需加密,需要使用SHH隧道或类似做客户端和服务器之间的加密。
MongoDB服务器建议布置在防火墙或内网中,但是如果需要被外部访问,使用--bindip选项,可以指定mongod绑定在本机IP地址。
可以用--noscripting完全禁止服务器端JavaScript的执行。

延伸 · 阅读

精彩推荐
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22