MongoDB系列之-客户端工具连接MongoDB远程服务

左手的ㄟ右手 2023-06-28 12:29 213阅读 0赞

一.前言

俗话说,千里之行始于足下,开始学MongoDB技术了,博主没有从原理开始讲解MongoDB,而是从实际的代码开始,博主会在代码中讲解MongoDB的原理知识,碰到的问题都会有记录,后面也会拓展一下,MongoDB的适用场景。让大家知道什么样的场景下可以使用MongoDB,来吧开干。

二.MongoDB远程服务连接

这个模块专门用来探讨MongoDB的使用,使用是微服务架构。来来来,撸起来。
首先,要保证MongoDB服务的连通性。我这里报错了,使用客户端工具连接的时候报错,因为我安装Linux MongoDB服务的时候也没有设置啥密码什么的,访问不了我们就来一步步排查,看问题出在哪里?

在这里插入图片描述

  1. 首先,检查你在Linux系统安装的MongoDB服务是否为默认端口27017,如果不是调整过来,还是默认的比较好,因为有些命令内置给的27017,重新启动服务。
  2. 查看端口占用情况

    [root@instance-n4r06itt bin]# netstat -anp
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:8000 0.0.0.0: LISTEN 28535/nginx: master
    tcp 0 0 127.0.0.1:27017 0.0.0.0:
    LISTEN 30189/./mongod
    tcp 0 0 0.0.0.0:111 0.0.0.0: LISTEN 492/rpcbind
    tcp 0 0 0.0.0.0:22 0.0.0.0:
    LISTEN 1129/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1091/master
    tcp 0 0 192.168.16.4:47468 100.64.253.42:80 ESTABLISHED 1182/./bcm-agent
    tcp 0 0 192.168.16.4:41104 100.64.253.36:1813 ESTABLISHED 1174/hosteye
    tcp 0 0 192.168.16.4:60742 100.64.253.36:1814 ESTABLISHED 1174/hosteye
    tcp 0 0 127.0.0.1:34328 127.0.0.1:781 ESTABLISHED 1243/./bcm-si

发现tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 30189/./mongod
只能本地连接,外部无法访问,我们需要开放对外访问权限。
那么我们就给MongoDB外部访问权限就好,修改配置如下:

  1. storage:
  2. dbPath: "/usr/src/mongodb-4.0.14/data"
  3. systemLog:
  4. destination: file
  5. path: "/usr/src/mongodb-4.0.14/logs/mongodb.log"
  6. net:
  7. port: 27017
  8. bindIp: 0.0.0.0
  9. processManagement:
  10. fork: false

在这里插入图片描述修改过来了,重新启动MongoDB。成功!!!

在这里插入图片描述

三.拓展

  1. 创建admin账户,test库

    切换到管理员

    use admin
    switched to db admin

    创建超级用户

    db.createUser({ user:’root’,pwd:’mongodb’,roles:[‘root’]});
    Successfully added user: { “user” : “root”, “roles” : [ “root” ] }
    db.auth(“root”,”mongodb”);
    1

    查询用户

    db.system.users.find();
    { “_id” : “admin.root”, “userId” : UUID(“73384c6a-b525-4f1a-af1c-6e85cd097d08”), “user” : “root”, “db” : “admin”, “credentials” : { “SCRAM-SHA-1” : { “iterationCount” : 10000, “salt” : “xYCfzhj+A+ICD90qoe7LZQ==”, “storedKey” : “PKXd1bkC87E7gW7PO89nZOpl93k=”, “serverKey” : “hMkc4P1e4lGjGL6m7vcCVAF4irA=” }, “SCRAM-SHA-256” : { “iterationCount” : 15000, “salt” : “6CTM9unCb3yhzg6NHvd92DwUzajKH3jhCVmPyQ==”, “storedKey” : “lBYIj+EFdf8PL1RwSiftMkX/bDhWTe+OfVGPAHqHb/g=”, “serverKey” : “QAmf4nf0l+OZG6Sr/gcWjiDg4KB2xXo62tJHHFlYs9s=” } }, “roles” : [ { “role” : “root”, “db” : “admin” } ] }

    切换到测试账户

    use test
    switched to db test

    创建test库

    db.createUser({ user:’test’,pwd:’mongodb’,roles:[{ role:’dbOwner’, db:’test’}]});
    Successfully added user: {

    1. "user" : "test",
    2. "roles" : [
    3. {
    4. "role" : "dbOwner",
    5. "db" : "test"
    6. }
    7. ]

    }

  2. roles的可选项有:

    • 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    • 备份恢复角色:backup、restore;
    • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    • 超级用户角色:root

至此,远程连接MongoDB服务就介绍到这里!!!

发表评论

表情:
评论列表 (有 0 条评论,213人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mongoDB可视化客户工具

          基于云端的应用越来越多,数据库也都搬到云端,数据库的也要通过远程进行管理维护,那么有没合适的WEB管理软件能胜任这项任务? 经过几个月不懈努力,TreeSoft数据

    相关 mongodb远程连接访问

            随着云计算,云服务的不断发展演进,数据库的管理及维护方式也在转变,传统基于C/S客户端工具管理的方式, 已经无法满足实际需要。TreeSoft数据库管理系统