一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(binary 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
关闭:
> 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