

一、首先到官网下载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
