1. 苏葳的备忘录首页
  2. 数据库

MongoDB在CentOS6下的安装以及服务启动

mongodb centosMongoDB是一个非常有特色的数据库,考虑到大多数用户使用数据库其实只需要它的数据存储与简单检索功能,一些轻量而高效的数据库系统会是很好的选择。在RedHat和CentOS下,用yum安装MongoDB非常方便。在本人国外的vps服务器上的CentOS下,用yum search可找到mongodb.i686安装包,但将这些repo文件ftp到本地虚拟机上之后,却提示下载不到某文件,估计是因为防火墙的问题。于是决定用官方提供的tgz文件安装。

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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注