設置遠程連接訪問mongodb數據庫
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數據庫