Write the Code. Change the World.

6月 28

mongodb安装

mongodb下载地址:https://www.mongodb.com/download-center

https://www.mongodb.org/dl/linux

这里有对应系统对应版本的mongodb下载链接。目前,mongodb最新版本是 3.4.4。

执行下边命令:

cd /usr/local/src/mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz
tar -xzvf mongodb-linux-x86_64-rhel70-3.4.4.tgz
mv mongodb-linux-x86_64-rhel70-3.4.4 /data/server/mongodb   #将文件复制到服务目录下

配置环境变量

修改/etc/profile,追加如下内容。然后source一下,使得修改生效。

export MONGODB_HOME=/data/server/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

执行下边命令进行编辑以及使得配置生效。

vi /etc/profile
#开始编辑,追加上边的内容。
source /etc/profile

查看mongodb的版本,使用mongod -v

05:26.461+0800 I CONTROL  [initandlisten] MongoDB starting : pid=31158 port=27017 dbpath=/data/db 64-bit host=VM_115_28_centos
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] db version v3.4.4
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] git version: 888390515874a9debd1b6c5d36559ca86b44babd
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] modules: none
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] build environment:
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten]     distmod: rhel70
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten]     distarch: x86_64
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2017-05-04T10:05:26.461+0800 I CONTROL  [initandlisten] options: { systemLog: { verbosity: 1 } }
2017-05-04T10:05:26.462+0800 D -        [initandlisten] User Assertion: 29:Data directory /data/db not found. src/mongo/db/service_context_d.cpp 98
2017-05-04T10:05:26.462+0800 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-05-04T10:05:26.462+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-05-04T10:05:26.462+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-05-04T10:05:26.462+0800 I CONTROL  [initandlisten] now exiting
2017-05-04T10:05:26.462+0800 I CONTROL  [initandlisten] shutting down with code:100

出现上边这样的信息,表示 mongodb 已经安装成功了。其安装和 mariadb 这些安装不同,解压后,复制到对应目录,设置好环境变量就可以了。

配置mongodb

  1. 创建数据库目录。mongodb 需要自建数据库文件夹。
mkdir -p /data/server/mongodb/data
mkdir -p /data/server/mongodb/data/log
touch /data/server/mongodb/data/log/mongodb.log
  1. 配置mongodb。创建并编辑/etc/mongodb.conf 。配置内容如下:
dbpath=/data/server/mongodb/data
logpath=/data/server/mongodb/data/log/mongodb.log
logappend=true
port=27017
fork=true
##auth = true # 先关闭, 创建好用户在启动

配置文件说明:

--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,
最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 设置为以守护进程的方式运行。即在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)

注:mongodb配置文件里面的参数很多,定制特定的需求,请参考官方文档。

通过配置文件启动:

mongod -f /etc/mongodb.conf

出现以下信息,表示启动成功了 。

about to fork child process, waiting until server is ready for connections.
forked process: 959
child process started successfully, parent exiting

查看 mongodb进程:

ps aux |grep mongodb

检查端口是否已经启动:

netstat -lanp | grep 27017

简单实用mongodb

mongo # 进入mongodb客户端

show dbs # 显示所有数据库

db # 显示当前库

db.col.insert({}) # 插入数据

# 创建用户
db.createUser(
{
    user:"test",
    pwd:"test",
    roles:[{role:"readWrite", db:"test"}]
    }
)

将 mongodb 服务加入到自启动文件中

/etc/init.d/目录下,新建 mongodb 文件,然后编写下边的内容,保存退出。

#!/bin/sh
#
#chkconfig: 2345 80 90
#description: mongodb
start() {
 /alidata/service/mongodb/bin/mongod -f /etc/mongodb.conf
}

stop() {
 /alidata/service/mongodb/bin/mongod -f /etc/mongodb.conf --shutdown
}

restart() {
 stop
 start
}

case "$1" in
  start)
   start
   ;;
  stop)
   stop
   ;;
  restart)
   restart
   ;;
  *)
 echo $"Usage: $0 {start|stop|restart}"
 exit 1
esac

然后,执行下边的命令。

chkconfig --add mongodb   #添加到开机自启动
chmod +x  /etc/init.d/mongodb
chkconfig mongodb on

注意

我们创建了用户, 这个时候要开启权限启动, 在配置文件中添加auth=true, 然后重启一下。mongodb 默认没有用户权限的, 建议大家一定要设置, 这样数据才安全.
若数据库出现不能连接的原因,可能是data目录下的mongod.lock文件问题,可以用如下命令修复:

./bin/mongod --repair

或者直接删除mongod.lock,再重启。

rm -rf /data/server/mongodb/data/db/mongod.lock 
mongod -f /etc/mongodb.conf

参考文章:

https://itjh.net/2016/07/11/centos-install-mongodb/

发表评论

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