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
- 创建数据库目录。mongodb 需要自建数据库文件夹。
mkdir -p /data/server/mongodb/data
mkdir -p /data/server/mongodb/data/log
touch /data/server/mongodb/data/log/mongodb.log
- 配置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