MongoDB安装并实现远程授权连接(Linux)

1. 到官网下载压缩包mongodb-linux-x86_64-4.0.27.tgz

官网地址:https://www.mongodb.com/try/download/community 按照图示,选择社区版4.0.x,Linux(legacy),tgz即可
在这里插入图片描述

2. 上传压缩包到Linux中,解压

在这里插入图片描述
解压命令:

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

3. 新建几个目录,分别用来存储数据和日志

#数据存储目录
mkdir -p /mongodb/single/data/db
#日志存储目录
mkdir -p /mongodb/single/log

4. 新建并修改配置文件

vi 新建一个文件

vi  /mongodb/single/mongod.conf

加入如下内容:

systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    # #The path of the log file to which mongod or mongos should send all diagnostic logging information
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/mongodb/single/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    ##The directory where the mongod instance stores its data.Default Value is "/data/db".
    dbPath: "/mongodb/single/data/db"
    journal:
        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
net:
#服务实例绑定的IP,默认是localhost
#设置为0.0.0.0 主要是为了远程连接
    bindIp: 0.0.0.0
    #绑定的端口,默认是27017
    port: 27017

5. 启动MongoDB服务

MongoDB安装路径/bin/mongod –f 配置路径,即

/usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongod  -f  /mongodb/single/mongod.conf

结果:

[root@localhost bin]# /usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongod -f /mongodb/single/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 84675
child process started successfully, parent exiting

如果启动后不是successfully ,则是启动失败了。原因基本上就是配置文件有问题。

通过进程来查看服务是否启动了:

[root@localhost bin]# ps -ef |grep mongod
root      84675      1  0 13:45 ?        00:00:08 /usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongo -f /mongodb/single/mongod.conf

6. MongoDB数据库测试

在安装路径下的bin目录,进行数据库测试

[root@localhost bin]# ./mongo
MongoDB shell version v4.0.27
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("56765b3a-1ae1-4e01-a32c-1885639a155a") }
MongoDB server version: 4.0.27
>

测试成功

7. 开放端口

firewall-cmd --zone=public --add-port=27017/tcp –permanent
systemctl restart firewalld.service
firewall-cmd –reload

8. 测试远程连接

https://www.mongodb.com/try/download/compass 下载window的连接软件
在这里插入图片描述
下载成功,安装,后打开,输入相关信息
在这里插入图片描述
连接成功
在这里插入图片描述

9. 授权登录

上面所说的远程连接是没有设置密码的,这样是很不安全的,所以在公网环境中要设置授权登录,授权操作如下:

  1. 进入MongoDB,创建用户,没有创建用户设置授权是没有任何意义的,这里我们创建超级用户,代码如下:
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})
  1. 在 /mongodb/single/mongod.conf 配置下,加入以下配置
    security:
    authorization: enabled
    完整的代码如下:
systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    ##The path of the log file to which mongod or mongos should send all diagnostic logging information
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/mongodb/single/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    ##The directory where the mongod instance stores its data.Default Value is "/data/db".
    dbPath: "/mongodb/single/data/db"
    journal:
        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
net:
    #服务实例绑定的IP,默认是localhost
    bindIp: 0.0.0.0
    #绑定的端口,默认是27017
    port: 27017
security:
    authorization: enabled
  1. 重启MongoDB

ps -ef | grep mongod 查看MongoDB的pid

[root@localhost bin]# ps -ef | grep mongod
root      87705      1  0 16:55 ?        00:00:03 /usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongo -f /mongodb/single/mongod.conf
root      87919  12114  0 17:09 pts/1    00:00:00 grep --color=auto mongod

kill – 9 87705 关闭MongoDB

/usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongod -f /mongodb/single/mongod.conf
重启MongoDB

[root@localhost bin]# /usr/local/mongodb/mongodb-linux-x86_64-4.0.27/bin/mongod -f  /mongodb/single/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 87950
child process started successfully, parent exiting

10. 测试授权登录

用刚刚的方式,连接失败
在这里插入图片描述
用新的配置
在这里插入图片描述

连接成功
在这里插入图片描述

Logo

更多推荐