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

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

mkdir -p /data/node/
touch /data/mongodb.log

1.2 安装mongodb:

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 创建新从节点配置文件:

cat >> ~/.mongodb.conf <<EOF
fork = ture
port = 11000
dbpath = /data/node
logpath = /data/mongodb.log
logappend = true
EOF

1.4 启动MongoDB

mongod --config ~/.mongodb.conf

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

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

2.2 添加服务

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

2.3 启动服务

# net start mongodb

2.4 删除服务

# mongod --remove

2.5 MongoDB启动配置文件

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选项。例如:

# mongod --config ~/.mongodb.conf
cat > ~/.mongodb.conf <<EOF
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}

> use admin
> db.shutdownServer();

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

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实例中的数据库都可以有很多用户。开启认证后,只有数据库认证用户才能执行读写操作。
认证后,管理员可以读写所有的数据库,执行特定的管理命令。
开启安全认证前,需要有管理员帐号。

> 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选项,开启安全检查。

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

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

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

可以执行

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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安装
, mongodb
管理
mongodb基本命令、mongodb基本命令用、shell脚本基本命令、gdb基本命令总结、mongodb js脚本,以便于您获取更多的相关知识。

时间: 2024-08-08 07:17:20

MongoDB的基本安装与管理命令脚本总结_MongoDB的相关文章

MongoDB基本管理命令

原文链接: http://blog.csdn.net/shirdrn/article/details/7105539 MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行.下面通过熟悉MongoDB的基本管理 命令,来了解MongoDB提供的DBMS的基本功能和行为. MongoDB命令帮助系统 在安装M

详解MongoDB管理命令_MongoDB

MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行.下面通过熟悉MongoDB的基本管理命令,来了解MongoDB提供的DBMS的基本功能和行为.  MongoDB命令帮助系统  在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控.看一下

MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)_MongoDB

一.安装和配置  MongoDB 的官方下载站是 http://www.mongodb.org/downloads,可以去上面下载最新的安装程序  Windows 平台的安装  ● 步骤一: 下载 MongoDB     点击上方官方下载地址, 并下载 Windows 版本 ● 步骤二: 设置 MongoDB 程序存放目录     下载完成后, 解压到自定义文件夹,例: D:\mongodb\ ● 步骤三: 设置数据文件存放目录     在 D:\mongodb\ 目录下创建 db 和 logs

MySQL的安装以及基本的管理命令和设置_Mysql

MySQL 安装 Linux/UNIX上安装MysqlLinux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器. MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器. MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包. MySQL-shared - 该软件包

Linux下非交互式远程执行命令脚本

  Linux下非交互式远程执行命令脚本(比ssh更好的方式) openssh在每台机器上都有,ssh与scp经常出现在我们的生活中. 然而当要管理的机器规模越来越大时,ssh登陆到目标机器进行管理就变得不现实了. 虽然可以直接在ssh后面接命令的方式,进行命令的执行. 但是ssh的严格的权限认证使得我们不得不输入密码,或是建立信任关系,很难去自定义一个特定的认证方式. 基于ssh的这种不足.于是笔者就写了一个jetfire,这个工具.比ssh多的一个重要的功能就是可以自定义认证方式,顺便避免了

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中.在本教程中你将会了解到: 磁带设备名 管理磁带驱动器的基本命令 基本的备份和恢复命令 为什么备份? 一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加.有了备份,你就有了从磁盘故障中恢复的能力.备份

LNMP 状态管理命令说明及Nginx、MySQL/MariaDB、PHP升级教程

状态管理命令分 LNmp状态管理命令 和 LNmpA状态管理命令,LNMPA代表的是Linux下Nginx.MySQL.PHP.Apache这种网站服务器架构,是结合LAMP与LNMP各自的优点而产生的新的网站服务器架构. LNmp状态管理命令: LNmp状态管理: /root/lnmp {start|stop|reload|restart|kill|status}Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}MySQL状态管理:/

虚拟化技术概述 虚拟机安装与管理手册_云其它

概述:虚拟化技术的介绍(kvm,qemu),虚拟机的安装,虚拟机的管理(virt-manger,virsh等). 1.为什么要有虚拟化技术? 如果你的主要操作系统是windows但是又需要在Linux上工作,像VMware(需要付费...)或者virtualbox一定是你的首选,这样你就可以在两个操作系统间随意切换了,除了这其实我们还有解除了很多虚拟化技术:比如虚拟光驱,我们完全不需要真正的光驱也可以使用光盘镜像,这些都是我们日常接触到的,但并不是虚拟化技术的全部,现在比较热门的docker容器

自动安装lnmp环境的脚本

#!/bin/bash #Authors are from JC #From the region BeiJing-China #Contact:285221465@qq.com # Source function library. . /etc/rc.d/init.d/functions cd $shell shell=/shell/script if [ -d /shell/script ];then action "shell安装目录已存在:" /bin/true else mk