centos mongoDB开启远程访问

徘徊边缘 提交于 2019-12-01 14:44:19

mongodb数据库启动后,默认只能在本地使用,端口为27017,那么如何设置让它可以远程访问呢?

1.修改配置文件mongod.conf  不同版本可能为 mongodb.conf

命令:vim /etc/mongod.conf

把 bindIp=127.0.0.1 这一行修改成 bindIp=0.0.0.0 不同版本可能是bind_ip

注意:设置远程访问以后,密码启动auth授权访问,不然非常不安全,数据库容易被攻击,

具体修改请自行搜索,已下配置可能和你的版本不一致

在配置文件中修改如下:

# Turn on/off security.  Off is currently the default
#noauth = true
auth = true

-----------------------------------------------------------------------------------------------------------------------------------------

2.在mongo数据库中新建用户名和密码:

在非授权模式下启动数据库,并使用mongo连接上数据库,例如我们要新建meeting数据库的用户和密码,则:

use meeting

db.createUser({user:"kimkat",pwd:"123456",roles:[{ role: "readWriteAnyDatabase", db: "meeting" }]})

注意:如果要添加meeting数据库的用户,请先use meeting,不然即使添加成功,也连接不上。

mongodb添加用户的方法:https://docs.mongodb.com/manual/reference/method/db.createUser/index.html

mongodb内置的用户角色:https://docs.mongodb.com/manual/core/security-built-in-roles/index.html

-----------------------------------------------------------------------------------------------------------------------------------------------

3.重启mongodb服务

命令:/etc/init.d/mongodb restart 或 service mongod restart

2.1防火墙开放27017端口

命令:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

注意:如果是云服务器,一般不用在系统内打开端口,只要在服务器管理界面打开端口就可以了。

----------------------------------------------------------------------------------------------------------------------------------------------------

4.远程连接

要连接的IP:116.85.12.51

命令:mongo 116.85.12.51:27017/meeting -u "kimkat" -p "123456"

这样就可以连接到116.85.12.51的mongodb/meeting的数据库了。

建议使用robo3t,mongovue,或者mongo compass等可视化工具来连接,其中官方提供的mongo compass可以直接导出csv文件。

笔者尝试了使用windows下的mongo.exe连接云服务器上的数据库,结果因为shell和server不匹配,所以失败。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!