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

一.前言

俗话说,千里之行始于足下,开始学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外部访问权限就好,修改配置如下:

storage:
  dbPath: "/usr/src/mongodb-4.0.14/data"
systemLog:
  destination: file
  path: "/usr/src/mongodb-4.0.14/logs/mongodb.log"
net:
  port: 27017
  bindIp: 0.0.0.0
processManagement:
  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: {
	"user" : "test",
	"roles" : [
		{
			"role" : "dbOwner",
			"db" : "test"
		}
	]
}
  1. roles的可选项有:
  • 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  • 备份恢复角色:backup、restore;
  • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  • 超级用户角色:root

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

发布了215 篇原创文章 · 获赞 135 · 访问量 114万+

猜你喜欢

转载自blog.csdn.net/weinichendian/article/details/103905808
今日推荐