一、首先到官网下载MongoDB的安装文件,由于本人虚拟机上安装的是CentOS 6的32位版,所以只能下载“Linux 32-bit legacy”这个版本,官方提到了此32位版不支持SSL及2GB以上的数据库文件。既用于测试,无所谓了。本人CentOS版本为:
[root@bogon init.d]# lsb_release -a LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.6 (Final) Release: 6.6 Codename: Final
二、下载链接提供的tgz文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.0.4.tgz
大约将近40M大小。
三、解包:
tar xvfz mongodb-linux-i686-3.0.4.tgz
四、建立安装目录:
本人发现/home目录下是空的,就安在这里得了:
mkdir -p mongodb
五、将解压缩出来的安装目录拷至此处:
cp -R -n mongodb-linux-i686-3.0.4 /home/mongodb
六、将可执行文件mongod路径加入PATH变量,不作赘述。
七、建立数据文件目录:
这里创建MongoDB的默认数据文件目录:
mkdir -p /data/db
八、设置目录权限,由于本人用root用户建立目录和安装MongoDB,所以不存在什么权限问题。
九、由于mongod的路径已加入PATH,所以直接输入mongod,就可以启动服务了。
由于此时服务是直接启动,会占用一个终端窗口,且需要用ctrl+c结束。用yum安装mysql时,可以统一的用service mysqld start或stop来开始停止服务,非常方便,所以也如下配置MongoDB试试:
一、在/etc/rc.d/init.d下创建文件mongod,注意在这个目录下也能发现mysqld和vsftpd等脚本文件。文件内容需要根据自己路径适当修改:
#!/bin/sh # # mongodb init file for starting up the MongoDB server # # chkconfig: - 20 80 # description: Starts and stops the MongDB daemon that handles all \ # database requests. # Source function library. . /etc/rc.d/init.d/functions exec="/home/mongodb/mongodb-linux-i686-3.0.4/bin/mongod" prog="mongod" logfile="/var/log/mongodb/mongodb.log" options="" #options=" -f /etc/mongo/mongod.conf" [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog lockfile="/var/lock/subsys/mongod" start() { [ -x $exec ] || exit 5 echo -n $"Starting $prog: " daemon --user mongodb "$exec --quiet $options run >> $logfile 2>&1 &" retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { stop start } reload() { restart } force_reload() { restart } rh_status() { # run checks to determine if the service is running or use generic status status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 restart ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac exit $?
保存。
二、然后用service mongod start启动:
[root@bogon ~]# service mongod start Starting mongod: /usr/bin/dirname: extra operand `2>&1' Try `/usr/bin/dirname --help' for more information. runuser: user mongodb does not exist [FAILED]
却报错了,提示mongodb用户不存在。
三、找到配置文件里的mongodb用户,改成root用户再试试。
将dameon命令的–user参数里的mongodb改成root,保存。
四、再用service mongod start启动:
[root@bogon ~]# service mongod start Starting mongod: /usr/bin/dirname: extra operand `2>&1' Try `/usr/bin/dirname --help' for more information. bash: /var/log/mongodb/mongodb.log: No such file or directory [ OK ]
启动成功,但是由于未建立日志目录,所以仍然有报错。
五、创建日志输出目录,并重启试试:
[root@bogon ~]# service mongod stop [root@bogon ~]# mkdir -p /var/log/mongodb [root@bogon ~]# service mongod start Starting mongod: /usr/bin/dirname: extra operand `2>&1' Try `/usr/bin/dirname --help' for more information. [ OK ]
提示成功。
六、进入/var/log/mongodb目录下查看,发现日志文件已生成。由于未提供mongodb配置文件,所以日志文件显示MongoDB侦听在27017端口。用telnet 127.0.0.1 27017,验证27017端口已工作。
七、下面还是提供个MongoDB的配置文件。先打开前面的mongod服务脚本,将
#options=" -f /etc/mongo/mongod.conf"
一句打开,当然前面一句应注释掉。保存。
再建立/etc/mongo目录,并在其下创建mongod.conf文件:
dbpath = /data/db logpath = /var/log/mongodb pidfilepath = /var/run/mongodb/mongod.pid directoryperdb = true logappend = true noauth = true port = 27017 maxConns = 1024 fork = true rest = true quota = true quotaFiles = 1024 nssize = 16
八、用service mongod start启动,正常。
可用mongo命令测试一下数据库:
#进入mongodb的shell模式 /usr/local/mongodb/bin/mongo #查看数据库列表 show dbs #切换/创建数据库(当创建一个集合(table)的时候会自动创建当前数据库) use admin; #增加用户 db.addUser("zhoulf ","123456",true) #更改密码(为已经存在的用户更改密码) db.addUser("zhoulf "," zhoulf "); #显示当前db状态 db.stats(); #当前db版本 db.version(); #删除当前使用数据库 db.dropDatabase(); #查看当前db的链接机器地址 db.getMongo(); #简单插入数据 db.user.insert({"fname":"zhoulf", "company":"navinfo"}) #循环插入数据 for (var i = 1; i <= 10; i++) db.user.save({ "fname" : "zhoulf"+i, "company" : "navinfo"+i }); #查询数据 db.user.find()
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/2136.html