MongoDB3.4远程连接

版权声明:本文为博主原创文章,不经博主允许也可转载 。 https://blog.csdn.net/Oscer2016/article/details/77587481

1. MongoDB简介:

  MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB文档与JSON对象类似。字段的值有可能包括其它文档、数组以及文档数组。

2. MongoDB安装(CentOS7):
详见 http://blog.csdn.net/jssg_tzw/article/details/53437430

3. MongoDB配置远程连接(以CentOS为例):

(1) 启动mongod服务:

systemctl start mongod

(2) 查看数据库版本:

[root@aliyun ~]# mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
> use admin
switched to db admin
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.4" }
{ "_id" : "authSchema", "currentVersion" : 5 }

如果是如上结果,因为数据库版本不一致,远程连接时会出现Authorization failed错误。
解决方法:

> db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})

如果是如下结果,则添加一条记录:

[root@aliyun ~]# mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
> use admin
switched to db admin
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.4" }
> db.system.version.insert({"_id":"authSchema","currentVersion":3})
WriteResult({ "nInserted" : 1 })
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.4" }
{ "_id" : "authSchema", "currentVersion" : 3 }

(3) 添加用户:

> db.createUser({user:"admin",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"test"}]})


Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        },
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

(4) 修改配置文件:

# bindIp: 127.0.0.1 那一行可以注释掉,也可以修改为如下所示:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.

# 远程连接数据库验证,旧版本为auth = true
security:
    authorization: enabled

(5) 重启mongod服务并开放27017端口:

systemctl restart mongod
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

(6) 测试连接:

命令行方式:

这里写图片描述

客户端方式:

这里写图片描述

这里写图片描述

这里写图片描述


Note: 如果是租用的服务器,记得在安全组配置规则(出入方向):

这里写图片描述


MongoDB教程: http://www.runoob.com/mongodb/mongodb-tutorial.html

MongoDB中文社区: http://www.mongoing.com/

猜你喜欢

转载自blog.csdn.net/Oscer2016/article/details/77587481