Mongodb的使用

一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSONbinary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。


tar fvxz mongodb-linux-x86_64-2.4.5.tgz

mv mongodb-linux-x86_64-2.4.5 mongod

cd mongod

mkdir data

mkdir log

方式一:

vi mongod.conf

   dbpath = /home/yuchunyun/mongodb/data

   logpath = /home/yuchunyun/mongodb/log/mongod.log

   logappend=true

   port = 27017

   fork = true

./bin/mongod --help可以查看参数详解

-h [ --help ]               show this usage information

 --version                   show version information查看版本信息

 -f [ --config ] arg         configuration file specifying additional options指定配置文件路径

 -v [ --verbose ]            be more verbose (include multiple times for more verbosity e.g. -vvvvv)冗余

 --quiet                     quieter output静默模式

 --port arg                  specify port number - 27017 by default指定服务监听的端口号,默认是27107,如果该服务想启动多个进程,需要指定不同的端口号

 --bind_ip arg               comma separated list of ip addresses to listen on - all local ips by default指定对外服务的绑定IP

 --maxConns arg              max number of simultaneous connections - 20000 by default支持的最大并发连接数,默认是20000

 --logpath arg               log file to send write to instead of stdout - has to be a file, not directory指定日志文件存放路径(不是文件夹)

 --logappend                 append to logpath instead of over-writing指定日志是以追加的方式纪录,不然就会覆盖

 --pidfilepath arg           full path to pidfile (if not set, no pidfile is created)指定PID文件路径

 --keyFile arg               private key for cluster authentication

 --setParameter arg          Set a configurable parameter

 --nounixsocket              disable listening on unix sockets

 --unixSocketPrefix arg      alternative directory for UNIX domain sockets (defaults to /tmp)

 --fork                      fork server process创建子进程方式启动服务,也就是后台启动

 --syslog                    log to system‘s syslog facility instead of file or stdout

 --auth                      run with security启动客户端的认证机制

 --cpu                       periodically show cpu and iowait utilization周期显示CPU和IO的使用情况

 --dbpath arg                directory for datafiles - defaults to /data/db/指定数据库存储目录,默认是/data/db。

 --diaglog arg               0=off 1=W 2=R 3=both 7=W+some reads提供的方式是读、写、读写、主要的写+部分的读

 --directoryperdb            each database will be stored in a separate directory

 --ipv6                      enable IPv6 support (disabled by default)

 --journal                   enable journaling启动日志记录(跟mysql的binlog差不多),Mongodb的数据操作将会被记录到dbpath下的journal文件夹下的文件中

 --journalCommitInterval arg how often to group/batch commit (ms)

 --journalOptions arg        journal diagnostic options

 --jsonp                     allow JSONP access via http (has security implications)允许JSONP形式通过HTTP访问(有安全影响)

 --noauth                    run without security不使用认证

 --nohttpinterface           disable http interface不启动http接口

 --nojournal                 disable journaling (journaling is on by default for 64 bit)不启动日志记录

 --noprealloc                disable data file preallocation - will often hurt performance关闭数据库文件大小预分配

 --noscripting               disable scripting engine关闭脚本引擎

 --notablescan               do not allow table scans不运行表扫描

 --nssize arg (=16)          .ns file size (in MB) for new databases新数据库ns文件的大小

 --profile arg               0=off 1=slow, 2=all

 --quota                     limits each database to a certain number of files(8 default)开启数据库配额的管理

 --quotaFiles arg            number of files allowed per db, requires --quota设定每个数据库允许的文件数

 --repair                    run repair on all dbs修复所有的数据库

 --repairpath arg            root directory for repair files - defaults to dbpath

 --rest                      turn on simple rest api

 --shutdown                  kill a running server (for init scripts)

 --slowms arg (=100)         value of slow for profile and console log

 --smallfiles                use a smaller default file size使用较小的默认文件大小

 --syncdelay arg (=60)       seconds between disk syncs (0=never, but not recommended)系统同步刷新磁盘的时间,默认是60秒

 --sysinfo                   print some diagnostic system information打印系统诊断信息

 --upgrade                   upgrade db if needed如果需要就更新数据库


Replication options:

 --oplogSize arg       size to use (in MB) for replication op log. default is 5% of disk space (i.e. large is good)


Master/slave options (old; use replica sets instead):

 --master              master mode主复制模式

 --slave               slave mode从复制模式

 --source arg          when slave: specify master as <server:port>当为从时,指定主的地址和端口

 --only arg            when slave: specify a single database to replicate当为从时,指定需要从主复制的单一库

 --slavedelay arg      specify delay (in seconds) to be used when applying master ops to slave

 --autoresync          automatically resync if slave data is stale自动同步


Replica set options:

 --replSet arg           arg is <setname>[/<optionalseedhostlist>]

 --replIndexPrefetch arg specify index prefetching behavior (if secondary) [none|_id_only|all]


Sharding options:

 --configsvr           declare this is a config db of a cluster; default port 27019; default dir /data/configdb声明这是一个集群的config服务

 --shardsvr            declare this is a shard db of a cluster; default port 27018声明这是一个集群的分片


./bin/mongod --config ./mongod.conf

about to fork child process, waiting until server is ready for connections.

all output going to: /home/yuchunyun/mongodb/log/mongod.log

forked process: 7685

ERROR: child process failed, exited with error number 45

sudo ./bin/mongod --config ./mongod.conf

方式二:

sudo ./bin/mongod  --port=37017 --dbpath=/home/yuchunyun/mongodb/data2/ --logpath=/home/yuchunyun/mongodb/log2/mongod2.log --fork --logappend

注:使用--fork就必须使用--logpath

ps -ef | grep mongod

mongod会启动两个端口,27017是配置文件中指定的数据库端口号,另一个端口port+1000是mongod启动的http端口号,浏览器访问http://localhost:28017,可以查看mongod的使用情况!

使用:

./bin/mongo

关闭:

a. db.shutdownServer()  #推荐优先使用
b. ctrl + c             #在不使用 --fork参数的时候可以使用,可能会造成数据文件损坏
c. kill / kill -2       #在无法使用 a和b的情况下使用,可能会造成数据文件损坏
d. kill -9              #不在万不得已的情况下,不要使用这个方法

> use admin

switched to db admin

> db.shutdownServer()

Thu Apr 17 10:16:13.405 DBClientCursor::init call() failed

server should be down...

Thu Apr 17 10:16:13.408 trying reconnect to 127.0.0.1:27017

Thu Apr 17 10:16:13.408 reconnect 127.0.0.1:27017 failed couldn‘t connect to server 127.0.0.1:27017

> exit


本文出自 “月满轩尼诗” 博客,请务必保留此出处http://sunnyyu.blog.51cto.com/8745931/1396895

Mongodb的使用,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。