CentOS安装Mongodb并设置权限

正经学徒,佛系记录,不搞事情

一、下载

官方下载地址

选中对应系统的版本

二、上传解压

将压缩包上传至服务器并解压(可通过xshell、xftp或者securityCRT、securityFX连接Linux远程服务器)

xftp下载地址:链接: https://pan.baidu.com/s/1QIOSvW7nm3oYg9_h_64b4w 提取码: dt5v

xshell下载地址:链接: https://pan.baidu.com/s/1ZuUOziiyi__uRE2t8Dw5Jw 提取码: zdae

使用命令 rz -y 上传文件,如果无法使用该命令,则通过 yum -y install lrzsz 安装 rz sz上传下载命令后在执行上传文件命令

解压命令:

tar -zxvf mongodb-linux-x86_64-4.0.6.tgz

三、安装

  • 首先创建相应的目录

自定义 MongoDB 的日志和数据存放目录

扫描二维码关注公众号,回复: 12470801 查看本文章

  • 创建配置文件

这个步骤目的是为了方便通过配置文件来启动mongo服务,使用命令 vi mongod.config 创建文件,填写内容

# mongodb port number
port=27017
# mongodb data file path
dbpath=/home/mongo/db/
# mongodb log file path
logpath=/home/mongo/log/mongo.log
# mongodb automatically append log files
logappend=true

注意现在暂时不要加上权限auth=true,需要先创建用户后在更改

  • 创建系统服务启动文件

这个步骤也只是为了方便启动服务等操作,使用命令 cd /etc/init.d/ 进入系统目录,使用命令 vi mongod 创建mongo服务文件

#!/bin/sh
MONGO_PATH=/home/mongo/mongodb-linux-x86_64-4.0.6/bin/mongod
MONGO_PID=`ps -ef|grep 'mongod' | grep -v grep|awk '{print $2}'`
test -x $MONGO_PATH || exit 0
 
case "$1" in
  start)
     ulimit -n 2000
     echo "starting mongod server"
     $MONGO_PATH --fork --quiet -f /home/mongo/mongod.config
     echo "started mongod server"
     ;;
  stop)
     echo "stopping mongod server"
     if [ ! -z "$MONGO_PID" ]; then
        kill -15 $MONGO_PID
     fi
        echo "stopped mongod server"
     ;;
  status)
     ;;
  *)
     echo "usage: mongod {start|stop|status}"
     exit 1
esac
 
exit 0

为创建的文件添加可执行权限

chmod +x mongod 
  • 测试

mongo系统服务常用命令,不同系统方式不同

#CentOS 7.x之前 daemon命令....................  
#启动服务
service mongod start 
#关闭服务
service mongod stop 
#查看状态
service mongod restart  
#CentOS 7.x之后 systemctl命令.................
#启动服务
systemctl start mongod
#关闭服务
systemctl stop mongod
#查看状态
systemctl status mongod

 我的系统是7.x之前的,所以使用systemctl会提示找不到命令,改用daemon方式启动服务

四、权限设置

  • 创建管理员账号

进入mongo的bin目录 /home/mongo/mongodb-linux-x86_64-4.0.6/bin ,执行 ./mongo 启动mongo客户端

输入命令 use admin 切换 admin 数据库,执行命令创建用户

db.createUser({
    user:"管理员账号",pwd:"管理员密码",
    roles:[{role:"权限",db:"库名"},{role:"权限",db:"库名"}]
});

之后还有最后一步很重要,就是在admin库内执行 db.auth(账号,密码); 授权,否则开启权限后将没有权限操作数据库

  • 创建普通用户

过程类似创建管理员账户,只是 role 不同,这里创建一个叫 ahaha 的库

db.createUser({
    user:"用户账号",pwd:"用户密码",
    roles:[{role:"权限",db:"库名"}]
})

  • 开启权限

修改 mongod.config 文件,增加 auth=true,增加绑定的ip bind_ip=0.0.0.0, 顺便设置成服务后台启动 fork=true

# 启动权限
auth=true
# 后台启动
fork=true
# 设置可被哪个ip连接,当前表示所有机器
bind_ip=0.0.0.0

再一次重启服务即可使用

五、远程连接

使用mongochef客户端远程连接linux上的mongo服务

  • 添加开放端口

注:如果已经关闭了防火墙则跳过这一步

#修改防火墙配置表
vi /etc/sysconfig/iptables

增加你mongo的端口,不要加在末尾,可能不生效

-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT

重启防火墙配置

/etc/init.d/iptables restart

  • 使用 mongochef 连接

相应的,如果是连接 ahaha 的库,修改对应位置即可

如果出现管理员账号可以连接,但是非管理员账号不能连接

则参考博文:https://blog.csdn.net/qq_31748587/article/details/88712001

猜你喜欢

转载自blog.csdn.net/qq_31748587/article/details/88694501
今日推荐