Linux安装MongoDB 4.x
一. 安装环境:CentOS7+MongoDB4.0.13
二.下载MongoDB
cd /opt
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.13.tgz
tar -zxvf mongodb-linux-x86_64-4.0.13.tgz
mv mongodb-linux-x86_64-4.0.13 /usr/local/mongodb
三. 配置环境变量及配置文件
#### 3.1配置系统环境变量:
vi /etc/profile
键盘按下“i”进入编辑模式即可。在文件的最后加上:
#mongodb
export PATH=$PATH:/usr/local/mongodb/bin
最后按下“Esc”,输入“:wq”保存退出vi编辑模式,source /etc/profile使修改生效
3.2 创建MongoDB数据存放文件夹和日志记录文件夹,为后面的配置文件使用:
mkdir /data/mongodb
mkdir /data/mongodb/db
mkdir /data/mongodb/logs
3.3 创建MongoDB运行时使用的配置文件:
# 进入bin目录下:
cd /usr/local/mongodb/bin
# 创建mongodb.conf配置文件
vim mongodb.conf
会提示是new file,直接输入下面内容
dbpath = /data/mongodb/db # 数据文件存放目录
logpath = /data/mongodb/logs/mongodb.log #日志文件存放目录
port = 27017 # 端口
fork = true # 以守护程序的方式启用,即在后台运行
# auth=true # 需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释
bind_ip=0.0.0.0 # 允许远程访问,或者直接注释,127.0.0.1是只允许本地访问
最后“Esc”,输入“:wq”保存退出vim编辑模式即可
四. 启动MongoDB
4.1 启动MongoDB服务
进入bin目录下,加载配置文件方式启动
cd /usr/local/mongodb/bin
./mongod -f mongodb.conf
至此,MongoDB在Linux上的安装启动完毕
查看端口映射检查是否启动成功:netstat -nltp|grep mongod
ps -ef | grep mongo
4.2 关闭MongoDB
./mongod --shutdown --dbpath /data/mongodb/db(db文件目录,默认/data/db)
五. 创建账号
# 进入bin目录下
cd /usr/local/mongodb/bin
# 进入mongo
./mongo
# 展示db
show dbs
# 进去admin库
use admin
# 查看用户列表
show users
# 创建root用户 角色为管理员
db.createUser({user:'root',pwd:'root',roles:['userAdminAnyDatabase']})
#指定数据库创建用户
#db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
db.auth('root','root')
# 进入shopxx 库,如果不存在test库就会创建
use shopxx
#创建用户root 读写权限
db.createUser({user:'root',pwd:'root',roles:['readWrite']})
Built-In Roles(内置角色):
\1. 数据库用户角色:read、readWrite;
\2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
\3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
\4. 备份恢复角色:backup、restore;
\5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
\6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
\7. 内部角色:__system
具体角色:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限。
开启auth参数,认证通过后才能访问数据库
# 进入bin目录下:
cd /usr/local/mongodb/bin
# 创建mongodb.conf配置文件
vim mongodb.conf
# 放开注释
auth=true
六. mongodb启动脚本
cd /etc/init.d/
# 创建文件
vim mongodb
填充以下内容
#!/bin/sh
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS=" --dbpath=/data/mongodb/db/ --logpath=/data/mongodb/mongodb.log --logappend &"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
echo -n $"Starting mongod: "
daemon $mongod $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
}
stop()
{
echo -n $"Stopping mongod: "
killproc $mongod -QUIT
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
}
restart () {
stop
start
}
ulimit -n 12000
RETVAL=0
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
restart
;;
condrestart)
[ -f $lockfile ] && restart || :
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
esac
exit $RETVAL
# 启动
service mongodb start
# 停止
service mongodb stop
# 重启
service mongodb restart
注意 : 如果出现本地连接正常 远程无法连接情况,请注意开放端口号!