MongoDB系列之-客户端工具连接MongoDB远程服务
一.前言
俗话说,千里之行始于足下,开始学MongoDB技术了,博主没有从原理开始讲解MongoDB,而是从实际的代码开始,博主会在代码中讲解MongoDB的原理知识,碰到的问题都会有记录,后面也会拓展一下,MongoDB的适用场景。让大家知道什么样的场景下可以使用MongoDB,来吧开干。
二.MongoDB远程服务连接
这个模块专门用来探讨MongoDB的使用,使用是微服务架构。来来来,撸起来。
首先,要保证MongoDB服务的连通性。我这里报错了,使用客户端工具连接的时候报错,因为我安装Linux MongoDB服务的时候也没有设置啥密码什么的,访问不了我们就来一步步排查,看问题出在哪里?
- 首先,检查你在Linux系统安装的MongoDB服务是否为默认端口27017,如果不是调整过来,还是默认的比较好,因为有些命令内置给的27017,重新启动服务。
查看端口占用情况
[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。成功!!!
三.拓展
创建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"
}
]
}
roles的可选项有:
- 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
至此,远程连接MongoDB服务就介绍到这里!!!
还没有评论,来说两句吧...