安装完成,写入PATH路径,设定数据库位置
[root@localhost]# mkdir -p /data/db
试着来启动一下,无返回
[root@localhost etc]# cd /usr/local/mongodb/bin/ [root@localhost bin]# ./mongod 2017-07-28T10:31:59.655+0800 I NETWORK [thread1] ** 2017-07-28T10:31:59.655+0800 I NETWORK [thread1] waiting for connections on port 27017
启动失败自然也就连接不上了,网上有很多人遇到相同问题,梳理下解决方法
通过命令行启动
//创建Log路径 [root@localhost]# mkdir -p /usr/local/mongodb/data/ [root@localhost]# touch mongodb.log //创建Conf文件 [root@localhost etc]# vi mongo.conf //conf内容 auth=true //检查端口是否被占用 [root@localhost etc]# lsof -i :27017 //cd到bin路径下,命令行启动 [root@localhost etc]# ./mongod --dbpath /data/db --logpath /usr/local/mongodb/data/mongodb.log --config /etc/mongo.conf --fork //连接 [root@localhost bin]# ./mongo MongoDB shell version v3.4.6 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.6 >
通过配置文件启动
//丰富配置文件 dbpath = /data/db logpath = /usr/local/mongodb/data/mongodb.log logappend = true bind_ip = 127.0.0.1 port = 27017 fork = true auth = true //启动 [root@localhost bin]# ./mongod -f /etc/mongo.conf
另外,在/data/db/目录下生成了mongod.lock文件,如果上次未正常关闭mongo,下次启动之前先要删除lock文件
写进service服务
这个脚本原理很简单,写得很挺费劲的,以此纪念
#!/bin/bash PATH=/usr/local/mongodb/data/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=mongodb test -x $DAEMON || exit 0 set -e start(){ pid=`ps -o pid,command ax|grep mongod|awk '/-f/{print $1}'`; if [ ! -n "${pid}" ]; then echo -e "Starting MongoDB... " /usr/local/mongodb/bin/mongod -f /etc/mongo.conf else echo -e "MongoDB is runnning." fi } stop(){ pid=`ps -o pid,command ax|grep mongod|awk '/-f/{print $1}'`; if [ ! -n "${pid}" ]; then echo -e "MongoDB is already stop." else /usr/local/mongodb/bin/mongod --shutdown echo -e "Stopping MongoDB" fi } case "$1" in start) start ;; stop) stop ;; reload) stop start ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|reload}" >&3 exit 1 ;; esac exit 0
这里面start/stop操作的核心是执行相关命令,如果再把它们整合到单独文件就不会有了输出了,更简洁