MongoDB 安装及配置
MongoDB一般安装
1.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包
安装包有zip和msi格式的,这里推荐下载zip格式的,msi的其实也就是进行了下解压缩而已,而且安装时不让选择安装路径,默认安装到C:\Program Files\MongoDB 2.6 Standard 目录,根据自己的系统选择32位或64位的
我本人电脑是win8系统64位,下载64位的zip包,下载完成后解压缩到D:\MongoDB目录
创建数据库目录D:\MongoDB\data,接下来打开命令行窗口,切换到D:\MongoDB\bin 目录执行如下命令:
其中 --dbpath是指定数据库存放目录,这里要注意有两个 "-"
mongod --dbpath D:\MongoDB\data
这是命令行窗口会打印一些启动信息,最后一行显示为如下信息时表示启动成功了
2014-04-23T10:38:48.391+0800 [initandlisten] waiting for connections on port 27017
这是在浏览器输入http://localhost:27017/可以看到显示信息为
It looks like you are trying to access MongoDB over HTTP on the native driver port.
具体截图如下:
到此mongodb算是安装完了,比想象中简单了太多哈
MongoDB安装为Windows服务
将mongodb安装为windows服务非常简单只需要在上面执行的命令行后添加 --install即可
mongod --dbpath D:\MongoDB\data --install
按照正常的剧情,应该服务就安装成功了,但是很不幸,出现下面提示
--install has to be used with --logpath
按照提示,我们需要指定log目录,所以我们创建log目录D:\MongoDB\logs 然后重新执行命令
mongod --dbpath D:\MongoDB\data --logpath=D:\MongoDB\logs\mongodb.log --logappend
但是提示还是没有指定日志路径,几经折腾发现这是2.6版本的一个bug,将会在下一个版本修复,然后我们有两个选择,一个选择是使用上一个版本2.4.9,另一个选择是先用2.4.9版本安装成功服务,然后在升级到2.6(肿么升级?直接用2.6版本替换掉对应2.4.9版本的文件),那我们还有其他的选择吗,答案当然是肯定的,使用sc命令创建服务,使用net start启动服务
sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --dbpath D:\MongoDB\data --logpath=D:\MongoDB\logs\mongodb.log --logappend"
net start MongoDB
MongoDB配置文件
很遗憾,官方下载的安装包里面没有默认的配置文件,若想使用配置文件只能自己建一个了,另外个人也推荐使用配置文件来管理MongoDB的配置,使用配置文件配置数据库文件、日志文件以及其它的一些配置都一目了然
解压安装包到D:\MongoDB
建立数据库目录 D:\MongoDB\data
建立日志目录 D:\MongoDB\logs
建立配置文件目录 D:\MongoDB\etc
建立配置文件 D:\MongoDB\etc\mongodb.conf
dbpath=D:\MongoDB\data #数据库路径 logpath=D:\MongoDB\logs\mongodb.log #日志输出文件路径 logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件 journal=true #启用日志文件,默认启用 quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false port=27017 #端口号 默认为27017
这里仅指定了几个常用项,更多详细配置请参考官方文档 http://docs.mongodb.org/manual/reference/configuration-options/
注:以上目录是博主自己建立的目录,官方并没有对配置文件路径做出规范,全凭个人喜好来决定
配置文件和相关目录建好后使用如下方式启动MongoDB
- 普通启动
mongod --config D:\MongoDB\etc\mongodb.conf
- 安装为Windows服务
注:2.6版 这种方式在win7、win8 64位版无法安装成功,其他系统未测试mongod --config D:\MongoDB\etc\mongodb.conf --install
- 使用SC安装为Windows服务
sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --config=D:\MongoDB\etc\mongodb.conf"
这里需要注意下当指定了日志文件后,无论使用配置文件指定还是在命令行指定,日志就都会输出到指定的日志文件去了,在命令行界面将看不到任何日志输出
附注:
2.6版无法安装windows服务BUG链接 https://jira.mongodb.org/browse/SERVER-13515
MongoDB官网:http://www.mongodb.org/
Linux下Mongodb安装和启动配置
1.下载安装包
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz
下载完成后解压缩压缩包
tar zxf mongodb-linux-i686-1.8.2.tgz
mv mongodb-linux-i686-1.8.2 /usr/local/mongodb
创建数据库文件夹与日志文件
mkdir /usr/local/mongodb/data
touch /usr/local/mongodb/logs
echo "/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data –logpath=/usr/local/server/mongodb/logs –logappend --auth –port=27017" >> /etc/rc.local
/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend --auth --port=27017 --fork
//这个是不需要密码的
/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend --port=27017 --fork
--logpath 日志文件路径 --master 指定为主机器 --slave 指定为从机器 --source 指定主机器的IP地址 --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 --logappend 日志文件末尾添加 --port 启用端口号 --fork 在后台运行 --only 指定只复制哪一个数据库 --slavedelay 指从复制检测的时间间隔 --auth 是否需要验证权限登录(用户名和密码) -h [ --help ] show this usage information --version show version information -f [ --config ] arg configuration file specifying additional options --port arg specify port number --bind_ip arg local ip address to bind listener - all local ips bound by default -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) --dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录 --quiet quieter output 静默模式 --logpath arg file to send all output to instead of stdout 指定日志存放目录 --logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件 --fork fork server process 以创建子进程的方式运行 --cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况 --noauth run without security 无认证模式运行 --auth run with security 认证模式运行 --objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查 --quota enable db quota management 开始数据库配额的管理 --quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数 --appsrvpath arg root directory for the babble app server --nocursors diagnostic/debugging option 调试诊断选项 --nohints ignore query hints 忽略查询命中率 --nohttpinterface disable http interface 关闭http接口,默认是28017 --noscripting disable scripting engine 关闭脚本引擎 --noprealloc disable data file preallocation 关闭数据库文件大小预分配 --smallfiles use a smaller default file size 使用较小的默认文件大小 --nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小 --diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式 --sysinfo print some diagnostic system information 打印系统诊断信息 --upgrade upgrade db if needed 如果需要就更新数据库 --repair run repair on all dbs 修复所有的数据库 --notablescan do not allow table scans 不运行表扫描 --syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s Replication options: --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 当为从时,指定需要从主复制的单一库 --pairwith arg address of server to pair with --arbiter arg address of arbiter server 仲裁服务器,在主主中和pair中用到 --autoresync automatically resync if slave data is stale 自动同步从的数据 --oplogSize arg size limit (in MB) for op log 指定操作日志的大小 --opIdMem arg size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小 Sharding options: --configsvr declare this is a config db of a cluster 指定shard中的配置服务器 --shardsvr declare this is a shard db of a cluster 指定shard服务器
[root@namenode mongodb]# ./bin/mongo MongoDB shell version: 1.8.2 connecting to: test > use test; switched to db test
mongod --repair