1. 程式人生 > >設置遠程連接訪問mongodb數據庫

設置遠程連接訪問mongodb數據庫

tables efault art uil read dport 官方 -s 火墻

mongodb數據庫啟動後,默認只能在本地使用,端口為27017,那麽如何設置讓它可以遠程訪問呢?

1.修改配置文件mongodb.conf

命令:vim /etc/mongodb.conf

把 bind_ip=127.0.0.1 這一行註釋掉或者是修改成 bind_ip=0.0.0.0,最好是直接註釋掉,因為在centos下,使用bind_ip=0.0.0.0會報錯。

註意:設置遠程訪問以後,密碼啟動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

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不匹配,所以失敗。

技術分享圖片

設置遠程連接訪問mongodb數據庫