(执行的命令用绿色注明,备用命令用蓝色注明)
Mongodb是最近比较热门的非关系型数据库。
下面是虚拟机下linux版的安装步骤。
安装环境:
虚拟机:Oracle VM virtualbox 4.0.6
Linux:CentOS 5.6
1. 下载mongodb
网址:http://www.mongodb.org/
选择需要的版本
使用SSH Secure File Transfer Client把文件传到linux中(需要保证虚拟机linux系统和主机系统能相互ping透才能使用,没ping通的要设置一下linux的网络设置),这里我们把mongodb-linux-x86_64-2.2.2.tgz放在linux的根目录/下
下面进入linux文字终端(在登录界面ctrl+shift+f1):
进入根目录 /
把根目录的文件列出来可以看到mongodb-linux-x86_64-2.2.2.tgz已经在目录中了
进行解压
tar zxf mongodb-linux-x86_64-2.2.2.tgz
列出根目录下的文档可以看到已经出现了mongodb-linux-x86_64-2.2.2目录
在我们启动之前要创建一个供数据库存放文件的地方,我们可以直接在根目录下创建默认数据目录/data/db (如果没有此目录,将会启动失败) (如果创建在其他目录要保证当前账户对数据目录有写权限)
mkdir –p /data/db
Ps1:给目录写权限可以用chown –R 账户名:小组名 /data/db,因为我用的root账户,已经有了权限,这里就不执行这条命令了
现在可以启动了:
进入mongodb-linux-x86_64-2.2.2.tgz/bin目录进行启动(mongo的命令都要在该目录中执行才能找到命令)
启动数据库
./mongod
启动成功(如果在当前终端要停止服务,可以ctrl+c)
PS2:数据存放目录不是mogodb默认的/data/db时启动要加上数据存放目录路径
(例./mongod –dbpath ~/db)
Ps3:如果安装的mongodb版本的是32位的mongodb-linux-i686-2.2.2.tgz,会出现一个警告warning:32-bit servers don’t have journaling enabled by default.(32位服务器默认情况下没有日记功能)不影响服务器的启动。如果想给服务器加上journal功能可在启动时用./mongod --journal
最后测试一下数据库是否能用
Ctrl+shift+f2登录第二个文字终端
还是进入mongodb-linux-x86_64-2.2.2.tgz/bin目录运行mongodb shell
./mongo
出现> 就成功进入 mongodb shell了安装成功
在客户端要关闭数据库(例如在第二文字终端要关闭数据库)可用如下方法:
> pkill mongod
> pkill -2 mongod
切记不要直接执行下面的命令:
> pkill -9 mongod
该信号将会导致mongodb server强制性立即退出。
除了上述方法之外,我们还可以通过mongo客户端工具通知服务器正常退出,如:
> use admin
switched to db admin
> db.shutdownServer()
PS4:如果因为mongodb非正常关闭,出现无法启动的错误:
Thu Nov 17 22:42:49
Thu Nov 17 22:42:49 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Nov 17 22:42:49
Thu Nov 17 22:42:49 [initandlisten] MongoDB starting : pid=3257 port=27017 dbpath=/data/db/ 32-bit host=localhost
Thu Nov 17 22:42:49 [initandlisten]
Thu Nov 17 22:42:49 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Nov 17 22:42:49 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Nov 17 22:42:49 [initandlisten] ** with --journal, the limit is lower
Thu Nov 17 22:42:49 [initandlisten]
Thu Nov 17 22:42:49 [initandlisten] db version v2.0.1, pdfile version 4.5
Thu Nov 17 22:42:49 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684
Thu Nov 17 22:42:49 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41
Thu Nov 17 22:42:49 [initandlisten] options: {}
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Nov 17 22:42:49 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Nov 17 22:42:49 dbexit:
Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close listening sockets...
Thu Nov 17 22:42:49 [initandlisten] shutdown: going to flush diaglog...
Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close sockets...
Thu Nov 17 22:42:49 [initandlisten] shutdown: waiting for fs preallocator...
Thu Nov 17 22:42:49 [initandlisten] shutdown: closing all files...
Thu Nov 17 22:42:49 [initandlisten] closeAllFiles() finished
Thu Nov 17 22:42:49 dbexit: really exiting now
修复方法:这算是一个Mongod启动的一个常见错误,非法关闭的时候,lock文件没有干掉,第二次启动的时候检查到有lock文件的时候,就报这个错误了。
解决方法:进入 mongod上一次启动的时候指定的 data目录 --dbpath=/data/db
删除掉该文件:
rm /data/mongodb/mongo.lock
再执行:
./mongod --repair
启动:
/usr/local/src/mongodb-linux-x86_64-2.0.2/bin/mongod --port=27017 --pidfilepath=/var/run/mongod.pid --dbpath=/data/mongodb --directoryperdb --nojournal --noauth
OK,问题解决。
下面是windows环境的安装:
1.MongoDB 下载地址:http://www.mongodb.org/downloads。提供了各种平台的版本。我这里选择的是Windows平台下的。
2.新建目录E:\ MongoDB , 将下载的压缩包解压到此目录。bin文件夹下有一堆.exe 文件
其中有两个最重要的文件:Mongod.exe和Mongo.exe 。
Mongod.exe 是用来连接到mongo数据库服务器的,即服务器端。
Mongo.exe 是用来启动MongoDB shell的,即客户端。
其他文件:
mongodump 逻辑备份工具。
mongorestore 逻辑恢复工具。
mongoexport 数据导出工具。
mongoimport 数据导入工具。
3.3)开启服务器
第一步:新建一个目录用来存放MongoDB的数据库文件,即dbpath。随便建在那都可以,我这里建在 E:\MongoDB\data\db 。 这是为了下一步使用的。
第二步:打开CMD窗口,键入如下命令
最后一行命令中的-dbpath 参数值就是我们第一步新建的文件夹。这个文件夹一定要在开启服务之前事先建立好,否则会报错,mongodb不会自己创建。
如果操作成功会出现如下界面: